Я пытаюсь отправить двоичные данные между двумя компьютерами через Интернет.
я использую сокеты tcpip python и включил переадресацию портов в маршрутизаторах. до сих пор я не могу успешно подключить их. пожалуйста, найдите мою ошибку
Я пытался использовать другие протоколы (DCP), но проблема сохраняется
class Server:
def __init__(self):
#port forwarding and finding ip
p.EnablePortForward()
self.connections=[]
self.peers=[]
self.sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.sock.bind((p.serverhost,10000))
self.sock.listen(1)
def run_server(self):
print('started')
while True:
print('running')
c,a=self.sock.accept()
self.peers.append(a)
cThread=threading.Thread(target=self.handler,args=(c,a))
cThread.deamon=True
cThread.start()
self.connections.append(c)
print(str(a[0])+':'+str(a[1])+'connected')
def handler(self,c,a):
try:
while True:
data=c.recv(4096)
for conn in self.connections:
if data:
print(data)
self.disconnect(c,a)
except:
self.disconnect(c,a)
def disconnect(self,c,a):
self.connections.remove(c)
self.peers.remove(a)
c.close()
class Client:
def __init__(self,address):
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.sock.connect((address,10000))
def SendMsg(self,message):
self.sock.send(message)
def RecMsg(self):
data = self.sock.recv(1024)
print(data)
я установил объект сервера и выполнил Server.runserver ()
сервер слушает правильно
когда я пытаюсь создать клиентский объект с ip сервера, он не может подключиться и выдает ошибку тайм-аута.