API自动化的网络稳定性提升优化方法

在电脑上长时间跑自动化任务,有可能会出现:Failed to establish a new connection: [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次 的提示。

可以修改注册表项,要提升电脑的网络性能。

使用 regedit 命令访问 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/TCPIP/Parameters 注册表子键并创建名为 TcpTimedWaitDelay 的新 REG_DWORD 值。 将此值设置为十进制 30,其为十六进制 0x0000001e。该值将等待时间设置为 30 秒。

使用 regedit 命令访问 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/TCPIP/Parameters 注册表子键并创建名为 MaxUserPort 的新 REG_DWORD 值。 停止并重新启动系统。 缺省值:无 建议值:至少十进制 32768。

不知道怎么打开注册表的用户,可以直接新建一个TXT文档,把下面内容写入其中保存,再改这个新建的文件名为Tcpip.reg ,双击导入注册表即可:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"TcpTimedWaitDelay"=dword:0000001e
"MaxUserPort"=dword:00008000

当在调用接口时,使用命令行工具netstat -n 发现有将近 4000 个到运行接口的目标计算机的 IP 地址的连接处于 TIME_WAIT 状态,则可以增加默认 MaxUserPort 设置并同时降低 TcpTimedWaitDelay 设置,以便不会用尽客户端匿名端口。例如,您可以将 MaxUserPort 设置为 20000,将 TcpTimedWaitDelay 设置为 30。较低的 TcpTimedWaitDelay 设置意味着套接字在 TIME_WAIT 状态中等待的时间更短。较高的 MaxUserPort 设置意味着您可以让更多的套接字处于 TIME_WAIT 状态。

为了保证客户端稳定性,可以在一段时间内重启客户端:

调用本地端口API,GET请求这个地址,就可以重启并自动登陆VMLogin客户端

http://127.0.0.1:35000/api/v1/client/restart  重启客户端(无请求参数)