Разъем в python не подключается для некоторых устройств - PullRequest
0 голосов
/ 28 мая 2020

Я использовал сокет python для подключения к другим моим устройствам в другой сети с помощью переадресации портов. Он работал на некоторых устройствах.

Когда я пытался подключиться к устройству на большом расстоянии, он показывает ошибку тайм-аута. Это из-за большого расстояния?

1 Ответ

0 голосов
/ 28 мая 2020

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

Попробуйте выполнить эхо-запрос, чтобы узнать, сможете ли вы связаться с конечным сервером и сколько времени займет обход (последний столбец).

% ping www.google.com
PING www.google.com (172.217.164.100): 56 data bytes
64 bytes from 172.217.164.100: icmp_seq=0 ttl=54 time=300.335 ms
64 bytes from 172.217.164.100: icmp_seq=1 ttl=54 time=334.197 ms

Если это действительно занимает слишком много времени, вы можете установить тайм-аут вашего сокета

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# set timeout to 60 seconds
s.settimeout(60)
...