【发布时间】:2018-11-10 04:20:53
【问题描述】:
我们最近将一台 Windows 计算机从 Windows 7 升级到了 Windows 10,对操作系统进行了完全干净的安装。当它运行 Windows 7 时,我们托管了几个简单的 python 套接字服务器,以便网络上的另一台 Linux 计算机可以与 Windows 机器上的某些驱动程序接口。该系统(将套接字服务器绑定到开放端口并侦听响应)在此次升级之前的一年中运行良好。
当我们更新 Windows 机器上的操作系统时,之前在两台计算机之间建立 SOCK_STREAM 服务器连接的相同 python 脚本停止运行。当被要求连接时,连接只是超时。
有谁知道可能影响套接字在 Windows 10 上侦听能力的任何更改,和/或对此问题的任何修复?在大量挖掘中,我们无法找到明显的修复方法。
这是在每台计算机上运行的代码的基本示例。
Windows 10:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("XX.XX.XX.XX", XXXXX))
s.listen()
while True:
conn, addr = s.accept()
try:
conn.settimeout(3)
data = conn.recv(1024)
except:
break
if not data:break
# more code follows to process the data, etc.
在 Linux 上:
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(10) # this timeout can change, and it just hangs indefinitely when removed
s.connect(("XX.XX.XX.XX",XXXXX))
上面引用为一系列 X 的 IP 和端口是可用的,并且不会引发任何错误。
【问题讨论】:
-
90% 的时间,这是防火墙问题,另外 10% 是客户端计算机中的防火墙问题
-
是的,这是防火墙问题。我在玩名为“我的世界”的游戏时遇到了这个问题
标签: python sockets windows-10