mirror of
https://gitee.com/xmz7891/ykxmz.git
synced 2026-10-18 20:40:43 +00:00
被控端 - 修复 MTU 问题:夹 MSS + 路径 MTU 探测(公网可用率 48% -> 100%) - 复用 HTTP 连接(免掉每次新建 TLS 的 30% 握手失败) - 每分钟回头找局域网,自动切回快 400 倍的路径 - 画面心跳帧:静止时省流量,客户端仍知道流是活的 - 锁屏时给出可操作的提示 手表端 - 内置 GTS Root R4 / GlobalSign Root CA,修 SSLHandshakeException - 连接错误翻译成人话(证书/时间/解析/超时分别提示) - 经中转连上后用服务器报的地址刷新已配对记录 - 新增局域网连接页面、服务器延迟检测 服务器端 - 支持 chunked 请求体(修每 16 秒一次的连接错乱与大面积 502) - 网络调优脚本 net-tune.sh(开机自动应用) - 管理页:批量删除、网络体检、下载区 - 隧道改 HTTP/2 + 双连接 文档 - 许可协议 / 安装前必读 / 安装后须知(作者:小麦子)
104 lines
4.0 KiB
Python
104 lines
4.0 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""加强 verify_all 的残留清理。
|
||
|
||
问题:
|
||
套件里各测试会临时起 relay.py / java 进程。
|
||
Stop-Strays 原来只清 run_agent 和 run_stub,
|
||
漏掉的 relay.py 如果没及时退出,端口就占着 ——
|
||
下一个测试连不上自己的服务,报出"假失败"
|
||
(实测:单跑 9/9 和 69/69,套件里却 FAIL)。
|
||
|
||
改动:
|
||
1. 也清掉命令行里带 `_tests` 或 `relay.py` 的 python 进程
|
||
2. 也清掉 Java 测试进程
|
||
3. 清完等一下,确认关键端口真的空了
|
||
"""
|
||
from __future__ import annotations
|
||
|
||
import sys
|
||
from pathlib import Path
|
||
|
||
VERIFY = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote\_tests"
|
||
r"\verify_all.ps1")
|
||
|
||
OLD = '''function Stop-Strays {
|
||
Get-Process ykxmz -ErrorAction SilentlyContinue |
|
||
ForEach-Object { Stop-Process -Id $_.Id -Force -ErrorAction SilentlyContinue }
|
||
Get-Process python, pythonw -ErrorAction SilentlyContinue |
|
||
Where-Object { $_.Id -ne $PID } |
|
||
ForEach-Object {
|
||
$line = (Get-CimInstance Win32_Process -Filter "ProcessId=$($_.Id)" -ErrorAction SilentlyContinue).CommandLine
|
||
if ($line -and ($line -match 'run_agent' -or $line -match 'run_stub')) {
|
||
Stop-Process -Id $_.Id -Force -ErrorAction SilentlyContinue
|
||
}
|
||
}
|
||
Start-Sleep -Milliseconds 800
|
||
}'''
|
||
|
||
NEW = '''function Stop-Strays {
|
||
Get-Process ykxmz -ErrorAction SilentlyContinue |
|
||
ForEach-Object { Stop-Process -Id $_.Id -Force -ErrorAction SilentlyContinue }
|
||
|
||
# 各测试会临时起 relay.py / stub / java。
|
||
# 只清 run_agent/run_stub 是不够的 —— 漏掉的 relay.py 如果没及时退出,
|
||
# 端口就占着,下一个测试起不来,报出"假失败"
|
||
# (实测:chunked 单跑 9/9、协议单跑 69/69,套件里却 FAIL)。
|
||
Get-Process python, pythonw -ErrorAction SilentlyContinue |
|
||
Where-Object { $_.Id -ne $PID } |
|
||
ForEach-Object {
|
||
$line = (Get-CimInstance Win32_Process -Filter "ProcessId=$($_.Id)" -ErrorAction SilentlyContinue).CommandLine
|
||
if ($line -and ($line -match 'run_agent' -or $line -match 'run_stub' `
|
||
-or $line -match 'relay\\.py' -or $line -match '_tests')) {
|
||
Stop-Process -Id $_.Id -Force -ErrorAction SilentlyContinue
|
||
}
|
||
}
|
||
|
||
# Java 测试进程(JavaClientTest / JavaRelayTest)
|
||
Get-Process java -ErrorAction SilentlyContinue |
|
||
ForEach-Object {
|
||
$line = (Get-CimInstance Win32_Process -Filter "ProcessId=$($_.Id)" -ErrorAction SilentlyContinue).CommandLine
|
||
if ($line -and ($line -match 'JavaClientTest' -or $line -match 'JavaRelayTest')) {
|
||
Stop-Process -Id $_.Id -Force -ErrorAction SilentlyContinue
|
||
}
|
||
}
|
||
|
||
# 等到关键端口真的空出来(最多 6 秒),别让下一个测试撞上
|
||
for ($i = 0; $i -lt 12; $i++) {
|
||
$busy = $false
|
||
foreach ($p in 8765, 8766, 8799, 8130, 8140) {
|
||
if (Get-NetTCPConnection -LocalPort $p -State Listen -ErrorAction SilentlyContinue) {
|
||
$busy = $true
|
||
}
|
||
if (Get-NetUDPEndpoint -LocalPort $p -ErrorAction SilentlyContinue) {
|
||
$busy = $true
|
||
}
|
||
}
|
||
if (-not $busy) { break }
|
||
Start-Sleep -Milliseconds 500
|
||
}
|
||
Start-Sleep -Milliseconds 300
|
||
}'''
|
||
|
||
|
||
def main() -> int:
|
||
raw = VERIFY.read_bytes()
|
||
had_bom = raw.startswith(b"\xef\xbb\xbf")
|
||
text = raw.decode("utf-8-sig")
|
||
|
||
if "JavaClientTest" in text.split("function Stop-Strays")[1].split("}")[0]:
|
||
print(" 已经加强过")
|
||
return 0
|
||
if OLD not in text:
|
||
print(" [失败] 锚点没找到")
|
||
return 1
|
||
|
||
text = text.replace(OLD, NEW, 1)
|
||
VERIFY.write_bytes((b"\xef\xbb\xbf" if had_bom else b"")
|
||
+ text.replace("\r\n", "\n").encode("utf-8"))
|
||
print(f" 已加强 Stop-Strays(BOM {'保留' if had_bom else '无'})")
|
||
return 0
|
||
|
||
|
||
if __name__ == "__main__":
|
||
sys.exit(main())
|