大家好!我还在做这方面的研究,所以如果我犯了任何错误,请原谅。我目前正在做一个小项目,需要在两台设备之间进行套接字连接,问题是,当我在同一台设备上使用客户端和服务器时,效果不错。但是,当我将客户端移动到另一个设备,然后再次启动该过程(相同的LAN连接(时,它只给了我time out error [WinError 10060]
。这是我的代码:
服务器端:
HOST = '10.0.0.32'
PORT = 44132
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((HOST, PORT))
server.listen()
client, address = server.accept()
客户端:
HOST = '10.0.0.32'
PORT = 44132
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((HOST, PORT))
我已经尝试禁用防火墙并重新启动计算机,更改端口或尝试签入cmd,如果服务器是否真的在侦听,我这里缺少什么吗?非常感谢。
完整的错误报告为:A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
编辑:这也是我使用netstat:在44132
上侦听的端口
Proto Local Address Foreign Address State
TCP 0.0.0.0:44132 0.0.0.0:* LISTENING
edit2:我这边的另一个更新,我尝试关闭目标机器上的防火墙并对其进行ping,ping现在成功通过,但客户端和服务器仍然拒绝重新连接,并在超时时继续。可能是我的两个设备之间有另一个防火墙,由路由器实现以防止连接发生吗?
可能您使用了错误的ip地址,我的建议是使用命令arp -a
来检查服务器的ip是否正确(如果您可以访问路由器,您可以在那里进行其他检查(。
此外,请注意,当您使用socket.gethostbyname(socket.gethostname())
时,请查看此处的Python socket.gethostname