«Отказано в соединении», когда сервер работает снаружи, хотя работает локально - PullRequest
0 голосов
/ 31 октября 2019

Попытка проникнуть в сокеты и сети. Я написал несколько простых серверных и клиентских сценариев и запустил их, которые работали, когда локально подключался, а клиент-сервер общался очень хорошо, но когда мой клиентский сценарий пытается подключиться к my_external_ip: open_port, он получает «Connection Refused» [WinError 10061]

Я открыл порт (в данном случае 5234) и проверил его, используя те сайты сканирования портов, на что сервер, похоже, реагирует и даже принимает соединения.

Тем не менее, когда я запускаю свойклиентский скрипт, он выдает исключение, и сервер, похоже, не отвечает и даже не знает о попытке подключения.

Я временно отключил свой брандмауэр и убедился, что слушаю 0.0. 0.0: 5234 (насколько я понимаю, что я делаю).

Я что-то упустил? Мне не имеет смысла, что скрипт запускается локально, сервер принимает входящие внешние соединения, но это не работает. Может быть, проблема в том, что попытка исходящего соединения клиента каким-то образом заблокирована?

Я очистил некоторый несвязанный код, но это все:

СЕРВЕР:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server = ""  #Also tried socket.gethostname() and 0.0.0.0
port = 5234
s.bind((server,port))
s.listen()
connection, address = s.accept()

КЛИЕНТ:

def __init__(self):
    self.client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    self.server = my_public_ip
    self.port = 5234
    self.client.connect((self.server,self.port)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...