mirror of
https://gitee.com/xmz7891/ykxmz.git
synced 2026-10-18 17:10:43 +00:00
琚帶绔?- 淇 MTU 闂锛氬す MSS + 璺緞 MTU 鎺㈡祴锛堝叕缃戝彲鐢ㄧ巼 48% -> 100%锛?- 澶嶇敤 HTTP 杩炴帴锛堝厤鎺夋瘡娆℃柊寤?TLS 鐨?30% 鎻℃墜澶辫触锛?- 姣忓垎閽熷洖澶存壘灞€鍩熺綉锛岃嚜鍔ㄥ垏鍥炲揩 400 鍊嶇殑璺緞 - 鐢婚潰蹇冭烦甯э細闈欐鏃剁渷娴侀噺锛屽鎴风浠嶇煡閬撴祦鏄椿鐨?- 閿佸睆鏃剁粰鍑哄彲鎿嶄綔鐨勬彁绀? 鎵嬭〃绔?- 鍐呯疆 GTS Root R4 / GlobalSign Root CA锛屼慨 SSLHandshakeException - 杩炴帴閿欒缈昏瘧鎴愪汉璇濓紙璇佷功/鏃堕棿/瑙f瀽/瓒呮椂鍒嗗埆鎻愮ず锛?- 缁忎腑杞繛涓婂悗鐢ㄦ湇鍔″櫒鎶ョ殑鍦板潃鍒锋柊宸查厤瀵硅褰?- 鏂板灞€鍩熺綉杩炴帴椤甸潰銆佹湇鍔″櫒寤惰繜妫€娴? 鏈嶅姟鍣ㄧ - 鏀寔 chunked 璇锋眰浣擄紙淇瘡 16 绉掍竴娆$殑杩炴帴閿欎贡涓庡ぇ闈㈢Н 502锛?- 缃戠粶璋冧紭鑴氭湰 net-tune.sh锛堝紑鏈鸿嚜鍔ㄥ簲鐢級 - 绠$悊椤碉細鎵归噺鍒犻櫎銆佺綉缁滀綋妫€銆佷笅杞藉尯 - 闅ч亾鏀?HTTP/2 + 鍙岃繛鎺? 鏂囨。 - 璁稿彲鍗忚 / 瀹夎鍓嶅繀璇?/ 瀹夎鍚庨』鐭ワ紙浣滆€咃細灏忛害瀛愶級
121 lines
5.0 KiB
Python
121 lines
5.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""断言安卓端的这次改造真的到位了。
|
|
|
|
用户要求:
|
|
1. 去掉老版本那些「搜索局域网」的东西
|
|
2. 电脑和手表在同一网络 -> 切局域网直连
|
|
3. 不在同一网络 -> 继续用中转
|
|
4. 局域网连不上了 -> 无缝切回中转
|
|
|
|
这些是 Java 代码,没法在这里跑起来,但可以**源码级断言**:
|
|
关键代码在不在、老代码清没清干净。
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
import re
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
ROOT = Path(__file__).resolve().parent.parent
|
|
WATCH = ROOT / "android" / "src" / "com" / "lanremote" / "watch"
|
|
MAIN = WATCH / "MainActivity.java"
|
|
RELAY_T = WATCH / "RelayTransport.java"
|
|
CLIENT = WATCH / "RemoteClient.java"
|
|
JSON = WATCH / "Json.java"
|
|
|
|
passed = 0
|
|
failed = 0
|
|
|
|
|
|
def check(name, ok, detail=""):
|
|
global passed, failed
|
|
if ok:
|
|
passed += 1
|
|
print(" [PASS] " + name)
|
|
else:
|
|
failed += 1
|
|
print(" [FAIL] " + name + " " + str(detail))
|
|
|
|
|
|
def main() -> int:
|
|
main_src = MAIN.read_text(encoding="utf-8")
|
|
relay_src = RELAY_T.read_text(encoding="utf-8")
|
|
client_src = CLIENT.read_text(encoding="utf-8")
|
|
json_src = JSON.read_text(encoding="utf-8")
|
|
|
|
print("一、老版本的局域网搜索要清干净")
|
|
# 只查真的按钮,不查注释 ——
|
|
# 代码里留了一句说明这个按钮被删了的注释,别把它当按钮。
|
|
check("没有「自动搜索电脑」按钮",
|
|
'bigButton("自动搜索电脑"' not in main_src
|
|
and '"自动搜索电脑"' not in re.sub(r'//[^\n]*', '', main_src))
|
|
check("没有 startDiscovery 方法",
|
|
"private void startDiscovery" not in main_src)
|
|
check("没有任何 startDiscovery 调用", "startDiscovery(" not in main_src)
|
|
check("没有 showFound 方法", "private void showFound" not in main_src)
|
|
check("没有 connectToFound 方法",
|
|
"private void connectToFound" not in main_src)
|
|
check("没有「正在搜索同一 WiFi 下的电脑」提示",
|
|
"正在搜索同一 WiFi" not in main_src)
|
|
|
|
print()
|
|
print("二、同网络 -> 切局域网直连")
|
|
check("有同网段判断方法", "private boolean sameSubnet" in main_src)
|
|
check("有挑同网段地址的方法",
|
|
"private String pickSameSubnet" in main_src)
|
|
check("有取本机 IPv4 的方法",
|
|
"private java.util.List<String> localIpv4List" in main_src)
|
|
check("连上中转后会试着切直连",
|
|
"切换成局域网直连" in main_src)
|
|
check("直连失败会退回中转",
|
|
"直连失败,退回中转" in main_src)
|
|
check("不在同一网络时明确说继续用中转",
|
|
"电脑不在同一网络,继续用中转" in main_src)
|
|
check("同网段判断用的是 /24(比前三段)",
|
|
"left[0].equals(right[0])" in main_src
|
|
and "left[1].equals(right[1])" in main_src
|
|
and "left[2].equals(right[2])" in main_src)
|
|
|
|
print()
|
|
print("三、局域网断了 -> 无缝切回中转")
|
|
check("有切中转的方法", "private void switchToRelay" in main_src)
|
|
check("断线时会判断是不是局域网",
|
|
"if (lanDirect && !autoSwitching)" in main_src)
|
|
check("切之前给用户提示",
|
|
"正在切到中转服务器" in main_src)
|
|
check("切成功会提示连接恢复",
|
|
"已切到中转服务器,连接恢复" in main_src)
|
|
check("中转也断了会重试", "次自动重连" in main_src)
|
|
check("重试有上限(不会无限)", "autoRetry < 3" in main_src)
|
|
check("防重入(不会同时切两次)", "autoSwitching" in main_src)
|
|
|
|
print()
|
|
print("四、配对码要持久化(令牌直连时切中转也需要它)")
|
|
check("有存配对码的方法", "private void rememberPairingCode" in main_src)
|
|
check("有读配对码的方法", "private String savedPairingCode" in main_src)
|
|
check("连接时会记住配对码", "rememberPairingCode(code);" in main_src)
|
|
check("没给码时会读上次的", "lastCode = savedPairingCode();" in main_src)
|
|
|
|
print()
|
|
print("五、中转要把电脑的局域网信息带给手表")
|
|
check("RelayTransport 有 lanIps 字段", "private java.util.List<String> lanIps" in relay_src)
|
|
check("RelayTransport 解析 lanIps", 'Json.stringList(reply, "lanIps")' in relay_src)
|
|
check("RelayTransport 解析 port", 'Json.integer(reply, "port", 0)' in relay_src)
|
|
check("RemoteClient 暴露 relayLanIps", "public java.util.List<String> relayLanIps()" in client_src)
|
|
check("RemoteClient 暴露 relayLanPort", "public int relayLanPort()" in client_src)
|
|
check("Json 有 stringList", "public static List<String> stringList" in json_src)
|
|
|
|
print()
|
|
print("六、界面上的显示要对得上")
|
|
check("连上后标注「局域网」或「中转」",
|
|
"(局域网)" in main_src and "(中转)" in main_src)
|
|
|
|
print()
|
|
print("=" * 62)
|
|
print(f"通过 {passed} 项,失败 {failed} 项")
|
|
return 0 if failed == 0 else 1
|
|
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(main())
|