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

Windows更新后DOBOT MG400与Python TCP_IP连接报WinError 10053求助

处理WinError 10053:DOBOT MG400与Windows 10 TCP连接异常问题

问题背景

此前通过Python 3 + RJ45 TCP/IP协议可正常控制DOBOT MG400机械臂,Windows系统更新后出现WinError 10053(连接被主机软件终止)。重启电脑后可正常运行几次,但很快再次报错:

  • 设备为学校管理的Windows 10电脑,已尝试关闭防火墙、断开互联网、系统还原(还原点过晚),问题未解决
  • 机械臂配套软件DOBOTStudio可正常控制运动,排除机械臂硬件/自身固件问题

最小复现代码

import socket

try:
    TCP_IP = '192.168.1.6'
    TCP_PORT = 30003
    BUFFER_SIZE = 80

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((TCP_IP, TCP_PORT))
    print(f"Connected to DOBOT port {TCP_PORT}")
except Exception as doboterror:
    print(f"Unable to connect to DOBOT port {TCP_PORT}:\n{doboterror}")
    
def send(msg):
    s.send(msg.encode())
    
def enable(weight = 0.196):
    msg = (f"EnableRobot({weight})")
    send(msg)

错误表现

首次调用enable()无响应(正常应激活机械臂),再次调用触发错误:

Connected to DOBOT port 30003

enable()
enable()
Traceback (most recent call last):
File "", line 1, in
File "D:\New DOBOT files\MRE DOBOT.py", line 20, in enable
send(msg)
File "D:\New DOBOT files\MRE DOBOT.py", line 16, in send
s.send(msg.encode())
ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine

解决方案建议

1. 处理学校管控的安全软件

学校设备通常部署有后台运行的企业级杀毒/EDR/集中管控软件,这是最可能的原因:

  • 联系学校IT管理员,将你的Python程序路径、TCP端口30003加入安全白名单
  • 申请临时禁用该设备的安全管控规则,测试是否解决问题

2. 优化TCP交互逻辑(符合DOBOT协议规范)

当前代码仅发送指令不接收响应,可能导致缓冲区阻塞触发系统主动断开连接:

  • 修改send函数,增加响应接收逻辑:
    def send(msg):
        s.send(msg.encode())
        # 接收机械臂响应,BUFFER_SIZE按协议文档设置
        response = s.recv(BUFFER_SIZE)
        print(f"Robot response: {response.decode()}")
    
  • 增加连接状态检查,避免向已断开的连接发送数据:
    def check_connection():
        try:
            # 发送空包检测连接有效性
            s.send(b'')
            return True
        except:
            # 重连逻辑
            s.close()
            s.connect((TCP_IP, TCP_PORT))
            print("Reconnected to DOBOT")
            return True
    

3. 排查Windows更新带来的网络配置变化

  • 用管理员权限打开命令提示符,执行netsh int tcp show global查看TCP参数,检查是否开启了快速回收闲置连接的策略,若开启可尝试调整:
    netsh int tcp set global idleconnectiontimeout=300000
    
  • 检查Windows Defender高级威胁防护(ATP)规则,确认是否限制了本地TCP连接

4. 交叉验证问题来源

  • 用非学校管控的Windows电脑测试相同代码,若正常则可确定是学校设备的安全/系统配置问题
  • 尝试USB连接控制机械臂,对比TCP连接的差异

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 15:47:13