我尝试使用Python 2.7中的套接字在同一网络上的两台独立Windows 7计算机上运行服务器和客户端。首先,我只是想在尝试做任何事情之前让他们联系。
目前我的服务器是:
import socket
host = '0.0.0.0' #Also tried '', 'localhost', gethostname()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, 12345))
s.listen(5)
cs, addr = s.accept()
print "Connected."
我的客户是:
import socket
host = '127.0.0.1' #Also tried 'localhost', gethostname()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(host, 12345)
print "Connected."
我得到的错误是:
socket.error: [Errno 10061] No connection could be made because the target machine actively refused it.
我已经查看了很多其他问题,但没有一个答案解决了我的问题。任何帮助表示赞赏。
当我使用服务器的IP地址(10.0.63.40)作为客户端的主机时,我得到了
[Errno 10060] A connection attempt failed because the connected party did not properly
respond after a period of time, or established connection failed because connected host has
failed to respond
答案 0 :(得分:2)
您说这些两台独立的机器。您无法通过连接到127.0.0.1
或localhost
来与另一台计算机联系。
听0.0.0.0
很好,这意味着可以从所有接口(包括本地网络)访问侦听套接字。
但是,要连接到服务器,您显然需要使用本地网络中服务器计算机的IP地址(或主机名,如果您已正确设置本地名称服务器)。
根据您的评论,服务器计算机的本地IP地址为10.0.63.40
。这意味着您应该最终致电s.connect("10.0.63.40", 12345)
。