Добрый день, есть попытка собственной реализации UDP-hp, но не работающия, буду благодарен за любой ответ.
Код:
Server:
import socket
from pickle import dumps
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(("192.168.0.122", 4545))
msg, addr1 = sock.recvfrom(1024)
msg, addr2 = sock.recvfrom(1024)
sock.sendto(dumps(addr2), addr1)
sock.sendto(dumps(addr1), addr2)
Client(идентичный код для обоих клиентов):
import socket
from pickle import loads
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(("192.168.0.122", 50000(и 50001 для второго клиента)))
server = ("Белый ip адрес сервера", 4545)
sock.sendto("Hi".encode(), server)
msg, addr = sock.recvfrom(1024)
another = loads(msg)
sock.settimeout(0.1)
while True:
try:
sock.sendto("Hello".encode(), another)
cl, ms = sock.recvfrom(1024)
print(cl.decode())
except socket.timeout:
continue
На сервере порт 4545 переброшен.