Что нужно вписать в метод socket.bind(HOST, PORT) и socket.connect(HOST, PORT) в Python?
Что нужно вписать в метод socket.bind(HOST, PORT) и socket.connect(HOST, PORT) в Python? Что только я в .bind не писал вместо имени хоста - и свой айпи, и имя своего хоста, который узнавал на сайтах на подобии https://myhostname.net/. В варианте с айпи выдавало ошибку:
OSError: [WinError 10049] Требуемый адрес для своего контекста неверен.
Я могу спокойно использовать localhost, но в данном случае подключатся смогу только я.
В варианте с именем хоста выдавало ошибку:
socket.gaierror: [Errno 11004] getaddrinfo failed.
Код сервера:
import socket
HOST = Не палю свой хост, здесь я вписывал данные с сайта выше.
PORT = int(50557)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind((HOST, PORT))
sock.listen(1)
conn, addr = sock.accept()
print('connected:', addr)
while True:
data = conn.recv(1024)
print(data.decode())
if not data:
break
conn.send(data.upper())
conn.close()
Ответы (1 шт):
sock.bind(('', PORT))
'' означает: все Ethernet интерфейсы на компьютере.
Для клиента используете имя или IP адрес сервера, и тот же порт:
sock.connect(name_or_ip_address, PORT);
Документация:
For IPv4 addresses, two special forms are accepted instead of a host address: '' represents INADDR_ANY, which is used to bind to all interfaces, and the string '<broadcast>' represents INADDR_BROADCAST.