You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

跨机器连接出现[WinError 10061]错误的技术求助

问题分析与解决方案

错误[WinError 10061]的核心原因是服务器未监听外部可访问的网络接口,或者客户端未指向正确的服务器IP,同时防火墙可能拦截了连接请求。以下是具体修复步骤:

1. 修改服务器绑定地址

你的server.py中使用socket.gethostbyname(socket.gethostname())获取绑定IP,该方法可能返回本地回环地址(127.0.0.1),导致服务器仅能接收本机连接。将绑定地址改为0.0.0.0,让服务器监听所有可用网络接口:

修改server.py中的SERVER变量:

# 原代码
# SERVER = socket.gethostbyname(socket.gethostname())
# 修改为
SERVER = "0.0.0.0"

启动服务器后,可通过ipconfig(Windows)/ifconfig(Linux)获取本机内网IP(如192.168.x.x),后续客户端将使用该IP连接。

2. 修正客户端连接地址

你的client.py中同样使用socket.gethostbyname(socket.gethostname()),这会获取客户端自身IP而非服务器IP。需将SERVER变量改为服务器的实际IP:

修改client.py中的SERVER变量:

# 原代码
# SERVER = socket.gethostbyname(socket.gethostname())
# 修改为服务器的内网IP(示例)
SERVER = "192.168.1.100"

注意:若服务器与客户端不在同一局域网,需配置公网端口映射,并使用服务器的公网IP

3. 正确配置防火墙

确保Windows防火墙允许Python程序或端口5050通过:

  • 打开Windows Defender防火墙高级设置
  • 添加入站规则:选择「端口」,输入5050,允许连接,应用到所有网络类型
  • 或直接允许运行服务器的Python.exe程序通过防火墙

4. 验证网络连通性

在客户端机器上执行ping 服务器IP,测试是否能连通服务器;若ping不通,检查两台机器是否在同一网段,或路由器是否有隔离设置。

额外代码优化建议

  • 当前clients.index(client)会频繁遍历列表查找索引,可改用字典存储客户端与昵称的对应关系,提升性能
  • recv(HEADER)固定接收64字节,易出现消息截断或空字符拼接问题,建议先发送消息长度再发送内容,保证消息完整性

内容的提问来源于stack exchange,提问作者Rowan Gallagher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 22:30:36