我想用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()
這在同一臺機器上正常工作。我怎麼能在兩臺不同的計算機上(在兩個不同的局域網上)完成這項工作?
您將需要連接到實際的IP地址而不是回送地址。如果兩個網絡可以通信,那麼它應該工作。 –
@RonMaupin,他不需要'端口轉發'嗎? – coder
@coder,這取決於。關於NAT的問題沒有什麼。有許多網絡不使用NAT。 –