#python #sockets #server #ip #client
Вопрос:
Я экспериментирую со связью сокет-сервер-клиент, используя модуль сокета python 3. Просто чтобы проверить, можно ли установить возможное соединение, я попытался запрограммировать самый простой из возможных сценариев. Таким образом, код сервера предназначен только для печати новых подключений; его код:
import socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(("0.0.0.0", 30000))
while True:
server.listen()
print("listening...")
conn, addr = server.accept()
print(f"{addr} connected")
в то время как клиент пытается подключиться к серверу только с помощью общедоступного IPv4-адреса моего компьютера:
import socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print("Trying to connect...")
client.connect(("99.99.99.99", 30000))
client.close()
Когда я пытаюсь запустить сервер, а затем клиент, ничего не происходит: сервер просто ждет соединений, в то время как клиент ничего не отображает. Через некоторое время на стороне клиента отображается ошибка тайм-аута сокета. Я пытался установить соединение даже при запуске сервера и клиента на одном компьютере, я пытался изменить ip-адрес сервера на «localhost» или «127.0.0.1», но ничего не происходит. У вас есть какие-либо идеи о том, как можно решить эту проблему?
P.S. Заранее благодарю вас за возможные ответы и прошу прощения за мой плохой английский, я все еще практикуюсь в нем!
Комментарии:
1. используйте локальный ip-адрес (обычно начинается с
192.168...
, по крайней мере, в Windows используйтеipconfig
для его получения командную строку), запустите сервер по этому адресу и подключитесь к тому же адресу2. Да, в этом случае это работает, но моя цель-удаленно подключить два устройства, которые также не могут принадлежать к одной и той же сети Wi-Fi. Возможно ли использовать общедоступный ip-адрес?
3. да, возможно, вам, вероятно, нужно включить переадресацию портов, где-то в настройках маршрутизатора, это также может стоить интернет-провайдеру или использовать какой-либо облачный сервис, например pythonanywhere.com
4. о, понял, спасибо, что уделили мне время!