Ich möchte ein Spiel mit Python und PyGame machen, wo zwei Spieler über Wi-Fi in verschiedenen Netzwerken Netzwerken spielen. Ich habe momentan diesen Code (den ich von einem Video bekommen habe).Kommunikation zu verschiedenen Netzwerken
# 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()
Dies funktioniert auf der gleichen Maschine. Wie kann ich dies auf zwei verschiedenen Computern (in zwei verschiedenen LANs) durchführen?
Sie gehen zu müssen, um eine Verbindung zu den tatsächlichen IP-Adressen anstelle der Loopback-Adresse herzustellen. Wenn die beiden Netzwerke kommunizieren können, sollte es funktionieren. –
@RonMaupin, muss er nicht auch "port-forward"? – coder
@coder, das hängt davon ab. Es gibt nichts in der Frage über NAT. Es gibt viele, viele Netzwerke, die kein NAT verwenden. –