Я создал приложение чата с использованием python-сокетов и Tkinter, и все это прекрасно работает локально, однако Клиент не может подключиться к серверу удаленно (когда я ввожу свой публичный IP-адрес в качестве хоста), я уже полностью перенаправлен через порт моя сеть и я хорошо знаем, как перенести порт вперед, и когда я запускаю онлайн-сканер Port Open, который проверяет, открыт ли порт, он сообщает, что порт открыт!?
Я переадресовал свой маршрутизатор на несколько портов и соответствующим образом обновил клиент и сервер, однако клиент и telnet все еще не могли подключиться. Я также отключил все свои брандмауэры Windows и отключил все брандмауэры маршрутизаторов.
Вот очень простая модель сокет-клиента и сервера, которую я пытаюсь решить, используя мою проблему.
Сервер
import socket
s = socket.socket()
host='0.0.0.0'
port = 2000
s.bind((host,port))
s.listen(5)
while True:
c, addr = s.accept()
print ("Got a connection from: ", addr)
c.send(bytes("Thanks for connecting",'utf8'))
c.close()
Клиент
import socket
s = socket.socket()
port = 2000
s.connect(("109.156.114.183", port))
print (s.recv(1024))
s.close
Telnet
C:\Users\Maks>telnet 109.156.114.183 2000
Connecting To 109.156.114.183...Could not open connection to the host, on port 2000: Connect failed
Когда я пытаюсь подключиться к серверу на 127.0.0.1 или на локальном хосте, или из моей локальной сети, клиент подключается идеально, и telnet также может подключиться. Я на 200% уверен, что у меня правильно настроен переадресация порта, потому что когда я запускаю сканирование Port Open, он говорит, что порт (2000) открыт.
Пожалуйста, помогите!
Спасибо-
Maks