Python中文
首页
教程
问答
标签
搜索
登录
注册
Python中的简单telnet聊天服务器
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我在阅读关于sockets的文章时,发现了一个很好的练习:一个简单的聊天服务器,可以响应输入。这似乎是一个常见的练习,我发现了几个例子,比如<a href="http://homepages.ius.edu/jfdoyle/B438/HTML/chatserver4chatserver5Python.htm" rel="nofollow noreferrer">chatserver5.py</a>和一些<a href="https://stackoverflow.com/q/3670127/266535">SO</a>问题。问题是我只能在使用<code>telnet localhost 51234</code>时连接,而不能使用<code>telnet 192.168.1.3 51234</code>(其中192.168.1.3是我的“服务器”的网络IP)。不用说,我无法从网络上的另一台机器连接。我得到以下输出:</p> <pre><code>Trying 192.168.1.3... telnet: connect to address 192.168.1.3: Connection refused telnet: Unable to connect to remote host </code></pre> <p>这是我的代码:</p> <pre><code>import socket, threading HOST = '127.0.0.1' PORT = 51234 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((HOST, PORT)) s.listen(4) clients = [] #list of clients connected lock = threading.Lock() class chatServer(threading.Thread): def __init__(self, (socket,address)): threading.Thread.__init__(self) self.socket = socket self.address= address def run(self): lock.acquire() clients.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(self) lock.release() print '%s:%s connected.' % self.address while True: data = self.socket.recv(1024) if not data: break for c in clients: c.socket.send(data) self.socket.close() print '%s:%s disconnected.' % self.address lock.acquire() clients.remove(self) lock.release() while True: # wait for socket to connect # send socket to chatserver and start monitoring chatServer(s.accept()).start() </code></pre> <p>我没有使用telnet或sockets的经验。为什么我不能远程连接,我怎样才能修复它?</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果设置了<code>HOST = ''</code>,则可以从任何地方连接。现在,您将它绑定到<code>127.0.0.1</code>,这与<code>localhost</code>相同。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
使用Python创建一个非常大的二进制频率矩阵来运行协作过滤
3 回答
使用Python创建一张HTML网页,其中在不同颜色中重复n遍显示“Hello World”的方法
2 回答
使用Python创建一组唯一的值length L
4 回答
使用python创建不同表格的透视表
1 回答
使用python创建不和谐频道
10 回答
使用python创建不存在的多个文件夹
8 回答
使用python创建串行远程文件
10 回答
使用python创建交互式仪表板时出现问题
1 回答
使用python创建交互式绘图
2 回答
使用python创建交互式自动电子邮件
6 回答
使用Python创建价格列表
6 回答
使用python创建修改的txt文件
10 回答
使用Python创建全局变量,初始化后更改值
10 回答
使用Python创建关键字搜索词数组
4 回答
使用Python创建具有不均匀块大小/堆叠条形图的热图
4 回答
使用Python创建具有依赖于另一列的值的列
5 回答
使用Python创建具有多列的HTML表
8 回答
使用Python创建具有时间范围数据的等距数据帧
6 回答
使用Python创建具有特定顺序或属性的XML文件
10 回答
使用Python创建具有级联功能的搜索栏
5 回答