Python套接字无法连接

时间:2015-05-22 18:19:43

标签: sockets

我尝试使用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

1 个答案:

答案 0 :(得分:2)

您说这些两台独立的机器。您无法通过连接到127.0.0.1localhost来与另一台计算机联系。

0.0.0.0很好,这意味着可以从所有接口(包括本地网络)访问侦听套接字。

但是,要连接到服务器,您显然需要使用本地网络中服务器计算机的IP地址(或主机名,如果您已正确设置本地名称服务器)。

根据您的评论,服务器计算机的本地IP地址为10.0.63.40。这意味着您应该最终致电s.connect("10.0.63.40", 12345)