这个python聊天程序有一些小故障

时间:2013-10-08 16:30:35

标签: python python-3.3

我有三台机器连接到没有互联网的集线器,我正在尝试使用类似于python 3.3中的聊天服务的代码。但是,当我运行发送代码时,它停止在Listening for connection ...当我在另一台机器上启动第二个程序来接收它时,会出现以下错误消息:

追踪(最近一次通话): 文件“C:\ Python33 \ recv.py”,第5行,in s.connect((主机,端口)) TimeoutError:[WinError 10060]连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接主机无法响应而建立连接失败。

以下是发送消息的第一个代码:

host = "127.0.0.1"
port = 4446
from socket import ^
s = socket(AF_INET, SOCK_STREAM)
s.bind((host,port))
s.listen(1)
print("listening for connections...")
q,addr = s.accept()
data = input("Data to be sent: ")
q.send(data)
s.close()

这是第二个接收的代码:

host = "86.10.137.206"
port = 4446
from socket import *
s = socket(AF_INET, SOCK_STREAM)
s.connect((host,port))
msg = s.recv(1024)
print("This is the message:",msg)
s.close()

可以采取哪些措施来解决此问题。是否与127.0.0.1

有关

1 个答案:

答案 0 :(得分:0)

IP地址127.0.0.1是环回地址,处理特殊。它用于本地系统上的进程间通信 - 数据包不会离开系统。

请查找并列出每个系统的IP地址。您应该有路由器或通过DHCP或其他东西分配IP地址的东西。使用ifconfig显示所有接口,并获取插入集线器的接口的IP地址。

必须将每个客户端配置为侦听服务器地址。

将主机端口更改为='',因为这是INADDR_ANY的pythonese。通过指定127.0.0.1,您将指定侦听环回端口

host = ''
port = 4446
from socket import ^
s = socket(AF_INET, SOCK_STREAM)
s.bind((host,port))
s.listen(1)
print("listening for connections...")
q,addr = s.accept()
data = input("Data to be sent: ")
q.send(data)
s.close()