我可以运行我的程序的两个实例并将它们相互连接,但是当不同 ip 的其他人尝试连接到我的服务器时,他们的套接字无法连接。我的代码没有输入用户计算机的 ip,但有我的 ip(因为我将是唯一运行服务器的人)硬编码。
这是服务器类连接函数:
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 的稍作修改的 Mastermind Networking Lib - 1.5.2。