Python 3 - хостинг сервера - PullRequest
0 голосов
/ 28 июня 2018

По сути, я делаю игровой сервер для моей текстовой игры на Python. Я хочу, чтобы каждый игрок делал свой собственный локальный сервер и / или публичный сервер, но я, похоже, не понимаю. Я пробовал это:

serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = input("Enter an IP: ")
port = 10922
serversocket.bind((host, port))

Но всякий раз, когда я запускаю его и набираю свой собственный внешний IP, он выдает мне эту ошибку: «OSError: [WinError 10049] Запрошенный адрес недопустим в своем контексте»

Изменить: Чтобы добавить к этому, он работает только с host = "127.0.0.1", но сервер не является публичным таким образом.

Может кто-нибудь помочь с этим?

1 Ответ

0 голосов
/ 29 июня 2018

Причина, по которой он выдает эту ошибку, заключается в том, что вы связываетесь с неизвестным адресом, следовательно, возникает ошибка.

Чтобы привязать сокет к вашему IP, выполните: socket.gethostbyname(socket.gethostname()) вместо адреса.

socket.gethostname() получает имя хоста компьютера, например, DANS_PC

socket.gethostbyname() ищет IP-адрес имени хоста, заданного в параметрах.

Однако, чтобы сделать сервер общедоступным, сделайте то же самое, но перенесите IP-адрес своего компьютера в настройках маршрутизатора.

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