Ответ Socket 10048 после socket.connect_ex - PullRequest
0 голосов
/ 12 июня 2019

У меня есть маленький кусочек кода, который возвращает 10048 после печати ответа

Я попытался добавить socket.SO_REUSEADDR, и это помогло в первый раз. После первого запуска программы она печатает 0. Что, насколько мне известно, означает, что порт открыт, но после этого он возвращает 10048. Я также попытался изменить порт.

Это мой код:

import socket 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
host = '127.0.0.1'
port = 1024
s.bind((host,port))
result = s.connect_ex((host,port))
print(result)
s.close()

Я не уверен, почему он это возвращает. Я искал везде, но не могу найти ответ. Я пытаюсь заставить его вернуть либо 0, либо 1. Поэтому я могу сказать, открыт порт или закрыт.

1 Ответ

0 голосов
/ 12 июня 2019

Это не может работать, когда хост является локальной машиной: вы пытаетесь использовать один и тот же порт на той же машине, что и источник, и пункт назначения.

Необходимо либо использовать два разных порта, либо на разных компьютерах не исправить порт источника и позволить системе выбрать один (не связывать перед подключением).

...