Python Ошибка программирования сокета: OSError: [Errno 48] Адрес уже используется - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь следовать программированию сокетов sentdex в python руководстве. Вот мой код сервера:

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

sock.bind((socket.gethostname(), 12345 ))

sock.listen(5)

while True:
    clientsocket, address = sock.accept()
    print(f"Connection established from {address}")
    clientsocket.send(bytes("Server says HI","utf-8"))

Вот мой код клиента:

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

sock.bind((socket.gethostname(), 12345 ))

m = sock.recv(1024)

print(m.decode('utf-8'))

sock.close()

Я использую MacBook Air с python 3.6.7 в virtualenv. Сначала я запускаю программу server.py, а затем программу client.py. Запуск client.py выдает следующую ошибку:

Traceback (most recent call last):
  File "client.py", line 5, in <module>
    sock.bind((socket.gethostname(), 12345 ))
OSError: [Errno 48] Address already in use

Sentdex выполнял код в windows, и он работал, но я не вижу, что я делаю здесь неправильно концептуально. Пожалуйста, помогите!

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