私は、2人のプレーヤーが異なるネットワークネットワーク上でwi-fi経由で遊ぶ、PythonとPyGameでゲームをしたいと考えています。私は現在このコードを持っています(私はビデオから得ました)。異なるネットワークとの通信
# 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()
これは同じマシンで正常に動作します。 2つの異なるコンピュータ(2つの異なるLAN上)でこの作業を行うにはどうすればよいですか? (サーバー用)host= '0.0.0.0'
へ
@このIPアドレスをcanfindループバックアドレスではなく実際のIPアドレスに接続します。 2つのネットワークが通信できる場合は、動作するはずです。 –
@RonMaupin、彼はまた、 'port-forward'する必要はありませんか? – coder
@coder、それは依存しています。 NATについては何も問題はありません。 NATを使用しない多くのネットワークがあります。 –