我想用python和PyGame制作游戏,其中两个玩家通过Wi-Fi在不同的网络网络上播放。我目前有这个代码(我从视频中获得)。
# SERVER
import socket
def Main():
host = '127.0.0.1'
port = 5000
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((host,port))
print("Server Started.")
while True:
data, addr = s.recvfrom(1024)
data = data.decode('utf-8')
print("message From: " + str(addr))
print("from connected user: " + data)
data = data.upper()
print("sending: " + data)
s.sendto(data.encode('utf-8'), addr)
c.close()
if __name__ == '__main__':
Main()
# CLIENT
import socket
def Main():
host = '127.0.0.1'
port = 5001
server = ('127.0.0.1',5000)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((host, port))
message = raw_input("-> ")
while message != 'q':
s.sendto(message.encode('utf-8'), server)
data, addr = s.recvfrom(1024)
data = data.decode('utf-8')
print('Received from server: ' + data)
message = raw_input("-> ")
s.close()
if __name__ == '__main__':
Main()
这在同一台机器上运行良好。我怎么能在两台不同的计算机上(在两个不同的局域网上)进行这项工作?
答案 0 :(得分:0)
更改为host= '0.0.0.0'
(对于服务器)
这使得它发布到任何可用的界面...如果你有路由器,你(可能)还需要使用路由器的端口转发设置来将流量引导到正确的计算机
撇开......这是什么废话?server = ('127.0.0.1',5000)
对于客户端...只需使用适当的端口设置网络的公共IP地址(如果您使用的是端口转发)...您可以找到此IP地址@ http://whatismyip.com