Сокет в Python через динамический ip

#python #sockets #networking

#python #сокеты #сеть

Вопрос:

Я смотрел видео с сокетом на python, в этом видео они создали простой файл клиента и сервера, и как только клиент подключится к серверу, он отправит сообщение клиенту, это можно сделать в локальной сети только потому, что там мы используем IP-адрес локального хоста. Мой вопрос в том, как мне создать тот, который работает через Интернет, а не только в локальной сети, также у меня есть динамический IP-адрес. Я попытался использовать noip.com чтобы получить сервер имен хостов, который автоматически обновит динамический IP-адрес, но он показывает ошибку, когда я пытаюсь связать его как

Ошибка ОС: [WinError 10049] Запрошенный адрес недопустим в его контексте

server.py

 import socket

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

s.bind(('chatbotpersonal.ddns.net', 5555))
#here in the video they used 127.0.0.1 as it is for localhost

s.listen()

while True:
    client, address = s.accept()
    print(f'connected to {address}')
    client.send('You are connected'.encode())
    client.close()
 

client.py

 import socket

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

s.connect(('chatbotpersonal.ddns.net', 5555))

message = s.recv(1024)
s.close()
print(message.decode())
 

Заранее благодарю. Я новичок в этом сокете и сети, пожалуйста, поделитесь со мной.

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

1. перейдите к whatismyip.org и посмотрите на свой ip-адрес, затем перейдите к своему маршрутизатору и настройте правила для пересылки трафика по каналу 5555 на ваш локальный компьютер… затем вы можете подключаться так, как хотите… но в целом для однорангового типа требуется какой-то централизованный сервер, который в основном действует как посредник (т. Е. Большинство пользователей не знают, как проверить свой IP-адрес, не говоря уже о переадресации порта настройки на своем маршрутизаторе

2. @JoranBeasley Спасибо за ответ, но я это знаю. Я не думаю, что вы прочитали это правильно, у меня есть динамический IP-адрес, он меняется через некоторое время, если я использую свой текущий ip, я должен менять его каждый раз, и это не решение

3. сначала заставьте его работать с вашим обычным нелокальным ip… тогда вы должны быть на 99% готовы к решению noip… поскольку вам все равно нужно будет перенаправить порт с вашего маршрутизатора и т.д., чтобы получить решение noip