Сокет Python как прослушивать имя хоста вместо IP-адреса

#python #sockets #server #client

#python #сокеты #сервер #клиент

Вопрос:

Итак, на моей стороне сервера я открываю socket :

 host = '192.168.0.20'
port = 9999
socket = socket.socket()
socket.bind((host, port))
socket.listen(5)
  

И со client стороны:

 socket = socket.socket()
host = '192.168.0.20'
port = 9999
socket.connect((host, port))
  

Теперь, потому что я хочу, чтобы мой server был более общим, поэтому вместо указания ip address я пытаюсь сделать это таким образом:

 host=socket.gethostname()
  

И из моего client просто подключитесь к моему имени хоста.
Но, к сожалению, сейчас это работает.

Есть предложения?

Комментарии:

1. почему не socket.gethostbyname(socket.gethostname()) ?

2. socket.gethostbyname(socket.gethostname()) со стороны клиента?

3. Проблема в том, что, поскольку на моей машине есть несколько сетевых карт, одна из них — это реальный IP-адрес, а другая — 169.254.x.x, и иногда ваш код возвращает этот поддельный IP-адрес, а не реальный

4. хорошо, какую ошибку вы получаете с помощью socket.connect((хост, порт))?

5. Возможно, так как я могу это исправить?