python TCP客户端无法连接到我的TCP服务器

python TCP客户端无法连接到我的TCP服务器

问题描述:

我可以运行我的程序的两个实例并将它们连接到对方,但是当其他IP地址的其他人尝试连接到我的服务器时,它们的套接字无法连接。我的代码没有输入用户计算机的IP,但我的IP(因为我将要运行的服务器的唯一的人)的硬编码python TCP客户端无法连接到我的TCP服务器

这里是服务器类连接功能。

def connect(self,host,port): 
    self.host = host 
    self.port = port 
    self.unconnected_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    self.unconnected_socket.bind((self.host,self.port)) 
    self.unconnected_socket.listen(5) 

这是当程序创建一个游戏

self.server = server.Server() 
self.server.connect(ip,port) #ip is my computer's ip address 
self.serverThread = Thread(target=self.server.serve_forever) 
self.serverThread.daemon = True 
self.serverThread.start() 
self.client.connect(ip,port) 

现在,这里是类客户端连接功能:

def connect(self,host,port): 
    self.host = host 
    self.port = port 
    self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    self.socket.connect((self.host,self.port)) 

当有人在不同的计算机上运行的程序,但选择加入游戏:

self.client.connect(ip,port) 

我使用的是稍微修改策划网络库 - 从pygames 1.5.2。

+2

您的服务器正在侦听哪个主机?确保它是一个公共接口,而不是本地主机。 – gecco 2012-08-03 06:07:59

+0

另外不要忘记检查防火墙规则。 – 2012-08-03 06:53:28

+0

软管/ IP是我猜我的房屋的IP地址不是服务器和客户端的127.0.0.1。我确保将pythonw作为防火墙的例外。 – user1270289 2012-08-03 18:26:39

盲猜:您可能将您的服务器绑定到地址127.0.0.1(或localhost)。无法通过出站连接访问此地址。 相反,您应该将绑定地址的主机设置为socket.INADDR_ANY