Я пытаюсь следовать программированию сокетов 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, и он работал, но я не вижу, что я делаю здесь неправильно концептуально. Пожалуйста, помогите!