我使用python套接字通过端口转发连接到其他网络上的其他设备。它适用于某些设备。
当我尝试与较长距离的设备连接时,显示超时错误。是因为距离长吗?
这可能不是由于网络延迟。套接字超时通常约为数十秒,而网络延迟很少超过一秒。您很可能无法到达目标服务器。
尝试ping以查看是否可以到达目标服务器以及往返所需的时间(最后一列)。
% 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)