Python socket 给出 [WinError 10057] 以太网电缆连接
Python socket gives [WinError 10057] with Ethernet cable connection
我正在尝试模拟一个连续(至少 24 小时)交换数据的网络,因此我通过以太网电缆连接了两台笔记本电脑(OS Windows)并为每个以太网端口设置了静态IP 地址(192.168.0.1 和 192.168.0.2)。电缆与交换机相连,交换机上有一个端口镜像 Raspi 上的数据,因为我想使用 Wireshark 分析流量并进行一些测试。
我找到了模拟服务器和客户端的代码 here,并且我正在使用 multiconn-client.py 和 multiconn-server.py。如果我在本地主机上测试代码它确实工作正常但是如果我用模拟服务器的机器的静态 IP 地址更改主机而不是我得到 WinError 10060。
我阅读了许多其他类似的主题,但由于我的开发环境很特殊,因此没有适合我的解决方案。
也许值得一提的是笔记本电脑也连接了wifi,一开始我以为是这个问题,但是当我关闭wifi时我遇到了同样的问题。
编辑:
这是客户端的回溯。
Traceback (most recent call last):
File "<ipython-input-7-1885b422d65a>", line 1, in <module>
runfile('C:.../MultiConnectionClient.py', wdir='C.../pyscript')
File "C:...Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
execfile(filename, namespace)
File "C:...Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:.../MultiConnectionClient.py", line 68, in <module>
service_connection(key, mask)
File "C:.../MultiConnectionClient.py", line 49, in service_connection
sent = sock.sendall(data.outb) # Send message
OSError: [WinError 10057] Eine Anforderung zum Senden oder Empfangen von Daten wurde verhindert, da der Socket nicht verbunden ist und (beim Senden über einen Datagrammsocket mit einem sendto-Aufruf) keine Adresse angegeben wurde
关于服务器,我尝试使用 TCPView 进行一些调试,虽然服务器似乎已启动并且代码已执行,但我在 TCPView 上找不到它的踪迹。
问题出在我的 windows Defender 防火墙上。我不得不为 "Guest or public networks" 禁用它 我想以太网电缆连接不知何故被归类为 public 网络。
我正在尝试模拟一个连续(至少 24 小时)交换数据的网络,因此我通过以太网电缆连接了两台笔记本电脑(OS Windows)并为每个以太网端口设置了静态IP 地址(192.168.0.1 和 192.168.0.2)。电缆与交换机相连,交换机上有一个端口镜像 Raspi 上的数据,因为我想使用 Wireshark 分析流量并进行一些测试。
我找到了模拟服务器和客户端的代码 here,并且我正在使用 multiconn-client.py 和 multiconn-server.py。如果我在本地主机上测试代码它确实工作正常但是如果我用模拟服务器的机器的静态 IP 地址更改主机而不是我得到 WinError 10060。 我阅读了许多其他类似的主题,但由于我的开发环境很特殊,因此没有适合我的解决方案。
也许值得一提的是笔记本电脑也连接了wifi,一开始我以为是这个问题,但是当我关闭wifi时我遇到了同样的问题。
编辑:
这是客户端的回溯。
Traceback (most recent call last):
File "<ipython-input-7-1885b422d65a>", line 1, in <module>
runfile('C:.../MultiConnectionClient.py', wdir='C.../pyscript')
File "C:...Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
execfile(filename, namespace)
File "C:...Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:.../MultiConnectionClient.py", line 68, in <module>
service_connection(key, mask)
File "C:.../MultiConnectionClient.py", line 49, in service_connection
sent = sock.sendall(data.outb) # Send message
OSError: [WinError 10057] Eine Anforderung zum Senden oder Empfangen von Daten wurde verhindert, da der Socket nicht verbunden ist und (beim Senden über einen Datagrammsocket mit einem sendto-Aufruf) keine Adresse angegeben wurde
关于服务器,我尝试使用 TCPView 进行一些调试,虽然服务器似乎已启动并且代码已执行,但我在 TCPView 上找不到它的踪迹。
问题出在我的 windows Defender 防火墙上。我不得不为 "Guest or public networks" 禁用它 我想以太网电缆连接不知何故被归类为 public 网络。