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。
答
盲猜:您可能将您的服务器绑定到地址127.0.0.1
(或localhost
)。无法通过出站连接访问此地址。 相反,您应该将绑定地址的主机设置为socket.INADDR_ANY
您的服务器正在侦听哪个主机?确保它是一个公共接口,而不是本地主机。 – gecco 2012-08-03 06:07:59
另外不要忘记检查防火墙规则。 – 2012-08-03 06:53:28
软管/ IP是我猜我的房屋的IP地址不是服务器和客户端的127.0.0.1。我确保将pythonw作为防火墙的例外。 – user1270289 2012-08-03 18:26:39