Я изучаю сокет, но мой код, но я не могу подключиться к порту - PullRequest
0 голосов
/ 21 марта 2020
#server
import socket
s = socket.socket()
print("Socket connected")
s.bind((socket.gethostname(),9999))
s.listen(3)
print("waiting for connection")
while True:
    c, addr = s.accept()
    print("connected with",addr)
    c.send(bytes("Welcome!","utf-8"))
    c.close()

#client
import socket
c = socket.socket()
c.connect((socket.gethostname(),9999))
msg = c.recv(1024)
print(msg.decode("utf-8"))

Я получаю сообщение об ошибке после запуска клиента, говорящего: OSError: [WinError 10048] Обычно разрешено только одно использование каждого адреса сокета (протокола / сетевого адреса / порта)

1 Ответ

0 голосов
/ 21 марта 2020

Ошибка указывает, что порт, к которому вы пытаетесь подключиться, в настоящее время используется. Даже если вы остановите программу, после привязки порт остается занятым в течение нескольких минут.

Вам необходимо включить опцию reuse address перед привязкой к портам в вашем коде.

Вот как вы можете это сделать:

s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)

Вы можете получить подробную информацию по ссылке ниже:

http://hea-www.harvard.edu/~fine/Tech/addrinuse.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...