Невозможно разместить сервер python - PullRequest
0 голосов
/ 16 апреля 2020

Когда я пытаюсь разместить сервер в python в моей локальной сети (используя мой локальный ip), он работает правильно, но когда я пытаюсь сделать это с моим publi c ip, чтобы я мог получить доступ к серверу с любого устройства которая не подключена к моей сети, программа (серверная программа) выдает ошибку.

server.bind (ADDR)

OSError: [WinError 10049] Запрошенный адрес недействителен в его контексте

Мне нужно знать, почему и как я могу заставить его работать.

ЗДЕСЬ РАБОЧИЙ КОД:

PORT = 5050
SERVER = socket.gethostbyname(socket.gethostname())
ADDR = (SERVER, PORT)

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(ADDR)

ЗДЕСЬ НЕ РАБОЧИЙ КОД:

PORT = 5050
SERVER = '' #<here i put my public ip>
ADDR = (SERVER, PORT)

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(ADDR)

1 Ответ

2 голосов
/ 16 апреля 2020

Невозможно привязать сокет к вашему публичному c IP-адресу , потому что это IP-адрес вашего маршрутизатора. Вы должны привязать ваш сокет к вашему локальному IP-адресу и создать переадресацию портов в вашем маршрутизаторе на ваш локальный компьютер.

Найдите свой локальный IP-адрес

Если вы на windows введите ipconfig в оболочке Windows cmd и найдите IPv4-адрес: xxx.xxx.x.xx . На Linux вы вводите ifconfig и ищете eth0 и адрес inet.

Используйте этот локальный ip для SERVER.

Переадресация портов

Выберите порт. Вы можете проверить, конфликтует ли номер порта с каким-либо официальным портом в этом списке . Затем go в настройках вашего маршрутизатора и включите Переадресация порта для этого порта. В зависимости от того, какой у вас маршрутизатор, вы можете открыть порт и выбрать целевое устройство, ваш компьютер, для пересылки входящих соединений. Используйте локальный ip вашего компьютера и порт, который вы установили в PORT на вашем сокет-сервере python.

Подключение с другого устройства

Для подключения к вашему компьютер из-за пределов вашей локальной сети, используйте ваш IP-адрес publi c и порт, который вы выбрали.

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