Я пытаюсь написать два коротких сценария python, которые соединят две или более машины друг с другом, одну как сервер, а остальные - как клиенты. Он отлично работал при тестировании клиента и сценария сервера на том же компьютере, но когда я попробовал его с другого компьютера, клиент продолжал тайм-аут; он не мог подключиться к серверу. Вот мой код сервера: КодPython Sockets: Connection Timeout
import socket
server = socket.socket()
host = "computername"
port = 12345
server.bind((host, port))
server.listen(5)
client, addr = server.accept()
Клиент:
import socket
server = socket.socket()
host = "computername"
port = 12345
server.connect((host, port))
Любой ключ, почему машины не могут подключиться?
Вы пытались отключить межсетевой экран (на обоих компьютерах)? У вас есть [общедоступный ip] (http://superuser.com/q/165986/13868) на сервере? Что произойдет, если вы запустите 'python3 -mhttp.server --bind имя_компьютера 12345' в качестве сервера и' python3 -c 'из urllib.request import urlopen; print (urlopen (' http: // computer: 12345 ') .read () .decode()) "как клиент? – jfs
@ J.F. Себастьян Как работает этот код? Я не понимаю, что с этим делать. –
скопируйте эти команды в командную строку (терминал, консоль) на соответствующих компьютерах (сначала http-сервер, а затем клиент, который делает запрос). Цель состоит в том, чтобы выяснить, является ли проблема вашим кодом или сетью. Если запрос успешный, то проблема - это ваш код. Если запрос не удался, проблема не имеет ничего общего с вашим кодом Python, и вы должны сначала настроить сеть. – jfs