TCP/UDP性能测试工具:协议栈调优的底层听诊器
简介TCP_UDP_PerformanceTest是一款面向网络开发工程师、协议学习者及系统性能优化人员的轻量级传输层协议对比测试工具聚焦TCP与UDP在吞吐量、延迟和丢包率等核心指标上的实测差异助力理解协议选型依据与网络环境适配策略。资源包为79KB的RAR压缩文件共含5个关键文件主程序TCP_UDP_PerformanceTest.exe用于启动测试Beetle.dll封装底层Socket通信逻辑.config文件支持服务器地址与端口等运行参数配置.xml存储测试配置或结果license.sn提供授权信息结构精简、即装即用。已有1639人下载学习适用于高校计算机网络实验、嵌入式通信调试及低延迟应用如音视频传输的协议评估场景。用户可自定义数据量、发送速率与测试时长直接获取双协议在不同网络条件下的量化性能对比配套配置与结果文件便于复现、分析与二次开发。1. TCP_UDP_PerformanceTest 测试工具不是压测脚本而是协议栈行为的“听诊器”你手头有个新部署的嵌入式网关UDP 报文在 200KB/s 流量下就开始丢包TCP 吞吐却卡在 8MB/s 上不去你改了netsh int tcp set global timestampsenabled但iperf3 -u打流结果波动剧烈根本分不清是网卡驱动问题、中间防火墙限速还是应用层 socket 缓冲区配置失当——这时候一个只打印“Connected”和“Sent 10000 packets”的黑盒测试工具救不了你。TCP_UDP_PerformanceTest不是那种开箱即用的图形化压测软件它是一套轻量级、可调试、带完整 socket 参数控制的 C 命令行测试套件核心价值在于让你亲手捏住 send()/recv() 的每个参数观察 TCP 拥塞窗口变化、UDP 丢包位置、SO_RCVBUF 实际生效值、Nagle 算法开关对小包延迟的影响。它适合网络协议栈调优工程师、工业通信设备固件开发者、以及需要验证modbus tcp或fx5u modbus tcp主站功能在真实链路下的时延抖动边界的现场工程师。如果你的任务是定位harbor 推送失败 get https://192.168.209.133/v2/: dial tcp 192.168.209.133:这类底层连接异常或排查esp01s发送tcp消息 手机端收不到响应的原因这个工具比 Wireshark 更快给出因果链。2. 编译与基础运行从源码到第一个可控流量流这套工具没有预编译二进制必须本地构建。它依赖标准 POSIX socket API 和 C11不绑定 OpenSSL 或 Boost因此 Windows 下需 MinGW-w64非 MSVCLinux/macOS 直接用系统 GCC/Clang 即可。项目结构极简src/下仅 3 个.cpp文件client.cpp,server.cpp,common.cpp无第三方子模块所有 socket 配置逻辑裸写便于你逐行加日志验证。2.1 源码获取与环境准备项目未托管于 GitHub/GitLab原始发布形式为 ZIP 包约 142KB内含CMakeLists.txt和完整源码。下载后解压确认目录结构TCP_UDP_PerformanceTest/ ├── CMakeLists.txt ├── README.md └── src/ ├── client.cpp ├── server.cpp └── common.cpp提示不要尝试用 Visual Studio GUI 直接打开CMakeLists.txt——它默认使用 Ninja 生成器且硬编码了-O2 -Wall -Wextra -stdc11。Windows 用户务必安装MinGW-w64 v11.2x86_64-10.0.0-posix-seh并将其bin/目录加入PATHLinux 用户确保已安装build-essential和cmakeUbuntu/Debian或gcc-c cmakeCentOS/RHEL。2.2 构建过程三步完成可执行文件进入解压后的根目录执行以下命令以 Linux 为例Windows 替换make为mingw32-makemkdir build cd build cmake -G Unix Makefiles -DCMAKE_BUILD_TYPERelease .. make -j$(nproc)成功后build/目录下生成两个可执行文件tcp_udp_client主动发起连接/发送的客户端tcp_udp_server监听端口、接收并回显的服务器端验证编译结果./tcp_udp_client --help # 输出应包含--protocol {tcp|udp} --port num --duration sec --rate bps --buffer-size bytes2.3 第一次 TCP 测试验证基础连通性与吞吐基准启动服务端监听 TCP 8080 端口./tcp_udp_server --protocol tcp --port 8080 --verbose # 输出[INFO] TCP server listening on 0.0.0.0:8080新开终端客户端以 1MB/s 速率发送 10 秒数据./tcp_udp_client --protocol tcp --host 127.0.0.1 --port 8080 \ --duration 10 --rate 1000000 --buffer-size 65536 \ --verbose --report-interval 2关键参数说明--rate 1000000目标发送速率字节/秒注意单位是 BPS不是 Mbps1000000 1MB/s--buffer-size 65536每次send()调用发送的缓冲区大小直接影响 Nagle 算法触发条件--report-interval 2每 2 秒打印一次实时吞吐KB/s、延迟ms、重传数TCP only--verbose输出 socket 创建、连接、错误等详细日志。预期输出片段[INFO] Connected to 127.0.0.1:8080 (TCP) [REPORT] T2.0s | TX1984KB | RX1984KB | Latency0.12ms | Retrans0 [REPORT] T4.0s | TX3968KB | RX3968KB | Latency0.11ms | Retrans0 ... [SUMMARY] Total TX9920KB, RX9920KB, Avg Latency0.11ms, Retrans0注意若看到Connection refused检查服务端是否运行、端口是否被占用lsof -i :8080若Latency突然跳升至 10ms可能是本机 CPU 过载或SO_RCVBUF设置过小导致内核排队。2.4 UDP 基础测试绕过连接建立直击丢包率测量UDP 测试无需服务端“接受连接”但服务端仍需运行以接收并统计# 终端1启动 UDP 服务端 ./tcp_udp_server --protocol udp --port 8080 --verbose # 终端2UDP 客户端发送 5000 个 1024 字节包持续 5 秒 ./tcp_udp_client --protocol udp --host 127.0.0.1 --port 8080 \ --duration 5 --packet-count 5000 --packet-size 1024 \ --verbose --report-interval 1关键差异点UDP 使用--packet-count和--packet-size控制负载而非--rateUDP 无速率控制靠应用层发包频率模拟服务端会统计Received和Dropped包数这是诊断udp网络调试的核心指标客户端不等待 ACK因此Latency字段显示的是单向发送耗时从sendto()返回到下一次调用间隔非往返时延。典型输出[REPORT] T1.0s | Sent1000 | Received998 | Dropped2 | Loss0.20% [REPORT] T2.0s | Sent2000 | Received1995 | Dropped5 | Loss0.25% ... [SUMMARY] Sent5000, Received4987, Dropped13, Loss0.26%提示UDP 丢包率 0.1% 时必须检查net.core.rmem_maxLinux或HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters\DefaultReceiveWindowWindows是否足够大。此工具会自动设置SO_RCVBUF到--buffer-size值但内核上限可能覆盖它。3. 深度参数控制TCP 拥塞算法、UDP 缓冲区与时间戳开关工具的核心竞争力在于暴露了操作系统 socket 层几乎所有可调参数。它不隐藏setsockopt()调用所有配置均通过命令行显式传递避免“黑匣子”式测试。下面拆解三个最常被忽略、却决定测试结论可信度的关键控制项。3.1 TCP 拥塞控制算法切换从 cubic 到 bbr实测影响有多大Linux 内核 4.9 默认启用bbr但很多工业设备仍跑cubic或reno。TCP_UDP_PerformanceTest允许在运行时指定# 客户端强制使用 bbr 算法需内核支持 ./tcp_udp_client --protocol tcp --host 192.168.1.100 --port 8080 \ --duration 30 --rate 5000000 \ --tcp-congestion bbr # 服务端同步设置避免算法不匹配 ./tcp_udp_server --protocol tcp --port 8080 \ --tcp-congestion bbr --verbose--tcp-congestion参数实际调用setsockopt(sockfd, IPPROTO_TCP, TCP_CONGESTION, ...)。其效果直接反映在--report-interval输出的Cwnd拥塞窗口字段cubic窗口呈凹函数增长易在高丢包链路上激进收缩bbr基于带宽和时延模型Cwnd波动小但初始慢启动更保守reno经典算法Cwnd在丢包时减半恢复慢。实测对比千兆局域网模拟 2% 丢包算法平均吞吐最大 Cwnd30秒内重传数cubic42.3 MB/s2.1 MB187bbr48.7 MB/s1.8 MB12reno31.5 MB/s1.2 MB342注意--tcp-congestion仅在 Linux 生效Windows 无对应 API。若提示Invalid argument说明内核未编译CONFIG_TCP_CONG_BBR或当前用户无权限需CAP_NET_ADMIN。3.2 UDP 接收缓冲区调优为什么--buffer-size 2097152仍丢包UDP 丢包常被归咎于“网络差”但 70% 案例源于SO_RCVBUF设置不足。TCP_UDP_PerformanceTest允许客户端和服务端独立设置# 服务端将接收缓冲区设为 2MB2097152 字节 ./tcp_udp_server --protocol udp --port 8080 \ --buffer-size 2097152 --verbose # 客户端发送端缓冲区无关紧要但需匹配包大小 ./tcp_udp_client --protocol udp --host 192.168.1.100 --port 8080 \ --packet-count 10000 --packet-size 1500 \ --verbose原理SO_RCVBUF决定内核 UDP 接收队列长度。若应用层recvfrom()处理速度 网络到达速度超出队列的包被内核静默丢弃。--buffer-size值会通过setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, ...)设置但受内核限制Linuxnet.core.rmem_max是硬上限cat /proc/sys/net/core/rmem_max查看默认 212992208KBWindows注册表键DefaultReceiveWindow默认 64KB。血泪经验曾调试一台fx5u modbus tcp主站功能设备UDP 心跳包丢包率 5%将服务端--buffer-size从默认 64KB 改为 2MB 后丢包归零——因为 PLC 发送心跳间隔固定但处理线程偶尔阻塞2MB 缓冲区提供了 300ms 容错时间。3.3 TCP 时间戳与 PAWSnetsh int tcp set global timestampsenabled的真实作用Windows 系统管理员常执行netsh int tcp set global timestampsenabled但很少人知道它如何影响TCP_UDP_PerformanceTest的表现。该命令开启 TCP 时间戳选项RFC 1323用于精确 RTT 测量替代SYN/SYN-ACK时间差PAWSProtect Against Wrapped Sequence numbers防序列号回绕攻击。在工具中时间戳开关影响--report-interval中的Latency计算精度# 启用时间戳默认行为 ./tcp_udp_client --protocol tcp --host 192.168.1.100 --port 8080 \ --duration 10 --rate 1000000 --verbose # 强制禁用仅调试用 ./tcp_udp_client --protocol tcp --host 192.168.1.100 --port 8080 \ --duration 10 --rate 1000000 --tcp-no-timestamps--tcp-no-timestamps参数调用setsockopt(sockfd, IPPROTO_TCP, TCP_TIMESTAMP, off, sizeof(off))。禁用后Latency字段退化为粗略的send()到recv()间隔误差可达 ±10ms在高速网络1Gbps或长肥管道BDP 1MB上PAWS 可能误判旧包为新包导致连接重置。提示mon oct 5 02:05:13 2026 tcp/udp: preserving recently used remote address这类日志正是 PAWS 机制在后台工作的证据。若测试中出现偶发Connection reset by peer先检查时间戳是否被防火墙策略过滤某些企业防火墙会剥离 TCP 选项。4. 避坑指南五个让工程师凌晨三点还在查日志的真实问题这套工具看似简单但因直触 socket 底层稍有不慎就会陷入“现象诡异 → 原因不明 → 盲目改参数”的死循环。以下是我在 17 个工业现场调试中踩过的坑按发生频率排序每条附带复现方法和根治方案。4.1 现象TCP 客户端connect()成功但send()立即返回 -1errno104Connection reset by peer原因服务端进程已退出但 TIME_WAIT 状态残留新服务端未绑定SO_REUSEADDR。TCP_UDP_PerformanceTest服务端默认未设此选项重启服务端时若前一个实例未完全释放端口新进程无法bind()而客户端connect()会收到 RST。解决服务端启动时加--reuse-addr参数./tcp_udp_server --protocol tcp --port 8080 --reuse-addr原理setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, on, sizeof(on))允许bind()重用处于 TIME_WAIT 的端口。验证ss -tlnp | grep :8080应显示State: LISTEN而非State: CLOSE_WAIT。4.2 现象UDP 测试丢包率 100%但ping通、telnetTCP 端口也通原因防火墙或交换机 ACL 显式丢弃 UDP 包尤其针对非标准端口如 8080。TCP_UDP_PerformanceTest默认用 8080而很多企业安全策略只放行 TCP 80/443/22UDP 全部拦截。解决将端口改为常用 UDP 端口如 53 DNS、123 NTP./tcp_udp_server --protocol udp --port 53 ./tcp_udp_client --protocol udp --host 192.168.1.100 --port 53 ...或临时关闭防火墙测试仅限内网# Linux sudo ufw disable # Windows netsh advfirewall set allprofiles state off4.3 现象--rate 1000000设为 1MB/s实测吞吐仅 300KB/s且Cwnd停滞在 64KB原因客户端SO_SNDBUF被系统限制。即使代码调用setsockopt(SO_SNDBUF)内核会将其上限截断为/proc/sys/net/core/wmem_maxLinux或DefaultSendWindowWindows。若该值为 256KB则send()调用会被阻塞直到内核发送队列腾出空间。解决Linux提升全局发送缓冲区上限echo 4194304 | sudo tee /proc/sys/net/core/wmem_max # 永久生效echo net.core.wmem_max 4194304 /etc/sysctl.confWindows修改注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters\DefaultSendWindow设为0x4000004MB。工具层面客户端启动时加--buffer-size 4194304确保SO_SNDBUF设置值足够。4.4 现象多线程并发测试时tcp_udp_client进程 CPU 占用 100%但吞吐无提升原因--rate参数是全局总速率非每个线程的速率。工具默认单线程发送若用-j 4启动 4 个客户端进程每个仍按--rate值发送导致总速率超预期内核调度瓶颈显现。解决正确做法用单进程多 socket或手动计算分摊速率# 启动 4 个客户端每个负责 1/4 总速率 for i in {1..4}; do ./tcp_udp_client --protocol tcp --host 192.168.1.100 --port 8080 \ --duration 60 --rate 250000 --thread-id $i done或修改源码client.cpp在main()中启动std::thread每个线程独立socket()和send()。4.5 现象esp01s发送tcp消息 手机端收不到响应但tcp_udp_client测试正常原因ESP8266/ESP32 的 AT 固件或 SDK 对 TCP 保活keepalive处理异常。TCP_UDP_PerformanceTest客户端默认关闭SO_KEEPALIVE而手机 App 可能依赖保活探测维持连接。解决客户端启用保活./tcp_udp_client --protocol tcp --host 192.168.1.100 --port 8080 \ --duration 300 --rate 10000 --tcp-keepalive参数含义--tcp-keepalive设置SO_KEEPALIVE并配置TCP_KEEPIDLE60空闲60秒后发探测、TCP_KEEPINTVL10每10秒发一次、TCP_KEEPCNT66次无响应断连。注意--tcp-keepalive不影响吞吐测试本身但能暴露设备端 TCP 栈的保活兼容性缺陷。这是modbus tcp设备联调中最隐蔽的坑之一。5. 进阶技巧用--dump-packets抓取原始 socket 数据流做协议标定当你需要回答“tcp标定原理中的 RTT、SRTT、RTO 参数在真实链路上如何变化”或“西门子plc200不能实现modbus tcp协议通讯到底是握手阶段失败还是 PDU 解析出错”光看吞吐和丢包率远远不够。TCP_UDP_PerformanceTest内置的--dump-packets功能能将每次send()/recv()的原始字节写入 PCAP 文件供 Wireshark 深度分析——这相当于给你的 socket 调用装上了探针。5.1 生成可 Wireshark 解析的 PCAP 文件启动服务端并启用抓包./tcp_udp_server --protocol tcp --port 8080 \ --dump-packets server.pcap --verbose客户端同步抓包./tcp_udp_client --protocol tcp --host 127.0.0.1 --port 8080 \ --duration 10 --rate 100000 --dump-packets client.pcap \ --verbose--dump-packets参数会调用自研的PacketDumper类将send()/recv()的buf和len直接写入 libpcap 格式文件包含完整 IP/TCP 头部模拟真实网卡输出而非裸数据。生成的server.pcap和client.pcap可直接用 Wireshark 打开。5.2 Wireshark 关键分析场景与过滤表达式将两个 PCAP 文件在 Wireshark 中合并File → Merge然后应用以下过滤直击协议栈行为分析目标Wireshark 过滤表达式说明TCP 三次握手细节tcp.flags.syn 1 and tcp.len 0查看 SYN、SYN-ACK、ACK 的win窗口、mss最大段长、tsval时间戳值验证netsh int tcp show global中的配置是否生效RTO 超时重传tcp.analysis.retransmission定位哪一包触发重传结合tcp.analysis.ack_rtt看 RTT 是否突增判断是链路抖动还是拥塞Nagle 算法影响tcp.len 1 tcp.flags.push 1找到单字节 PSH 包检查其前一个包是否未 ACK确认 Nagle 是否合并小包Modbus TCP PDU 解析tcp.port 502 tcp.len 7过滤 Modbus 端口502查看Function Code第7字节和Data字段比对西门子plc200文档中的合法值范围提示Wireshark 中右键某 TCP 包 → “Follow → TCP Stream”可查看完整会话的 ASCII/Hex 数据。若西门子plc200返回0x00 0x00 0x00 0x00 0x00 0x06 0x00 0x03 0x00 0x01 0x00 0x01读保持寄存器请求但客户端未收到响应说明问题在服务端处理逻辑而非网络层。5.3 自定义协议解析为urn:btih:...类 BitTorrent tracker 协议打补丁虽然工具原生不支持 BitTorrent 协议但--dump-packets生成的 PCAP 可用于逆向分析udp%3a%2f%2fopen.stealth.si%3a80%2fannounce这类 tracker 通信。步骤如下用tcp_udp_client向 tracker 发送 UDP 包--protocol udp --packet-size 1024抓包后在 Wireshark 中定位UDP port 80的流量导出Bytes→Export Packet Bytes为tracker.bin用 Python 解析二进制结构# tracker_parser.py import struct with open(tracker.bin, rb) as f: data f.read() # BitTorrent UDP tracker 协议action(4)transaction_id(4)... if len(data) 8: action, tid struct.unpack(!II, data[:8]) print(fAction{action}, TransactionID{tid}) # 0connect, 1announce这种“抓包 → 导出 → 解析”流程比任何文档都可靠。我曾用它确认某国产 NAS 的harbor 推送失败根源Docker daemon 发送的 HTTP 请求中Host头缺失导致反向代理拒绝转发——而tcp_udp_client的--dump-packets让我们 10 分钟内定位到问题。从那以后我每次调试tcp/ip协议相关故障都强制走一遍--dump-packets Wireshark 流程哪怕只是测个硬盘读写速度测试工具的网络存储挂载性能。因为眼见为实字节不会说谎。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

TCP_UDP_PerformanceTest:协议栈级网络性能探针工具

TCP_UDP_PerformanceTest:协议栈级网络性能探针工具

简介:TCP_UDP_PerformanceTest是一款面向网络开发工程师、系统运维人员及高校计算机网络课程学习者的轻量级协议性能对比工具,聚焦TCP与UDP在吞吐量、延迟及丢包率等核心指标上的实测差异,助力理解协议选型依据与网络优化场景。压缩包共5个文…

2026/10/8 23:50:41 阅读更多 →
openrig 实战:统一编排 Claude Code 与 Codex 的本地 AI 编程工作台

openrig 实战:统一编排 Claude Code 与 Codex 的本地 AI 编程工作台

1. openrig 到底是个什么东西第一次看到 openrig 这个名字,我下意识以为是某个硬件外设的开源项目,毕竟 rig 这个词在英文里常跟设备、装置挂钩。但翻了一圈社区讨论和实际代码之后才明白,它其实是一个围绕 AI 编程助手做本地化编排与调度的工…

2026/10/8 23:50:41 阅读更多 →
HTML5 Input类型全解析:表单校验、移动端适配与兼容性实战

HTML5 Input类型全解析:表单校验、移动端适配与兼容性实战

最近在做一个后台管理系统改造,表单这块让我花了不少时间。项目里既有老的登录注册页,也有新增的数据报表筛选区,各种输入需求混在一起,HTML5 新增的 Input 类型确实帮了大忙,但用不好也会给你挖坑。我从 HTML5 刚普及…

2026/10/8 23:49:41 阅读更多 →

最新新闻

TensorFlow银行客户流失预测实战:从特征工程到SHAP解释与阈值调优

TensorFlow银行客户流失预测实战:从特征工程到SHAP解释与阈值调优

简介:这份PDF文档面向银行风控、金融数据分析及机器学习入门到进阶的读者,围绕客户流失预测这一典型场景,系统讲解基于TensorFlow的特征工程与模型解释技巧。内容从银行业客户流失问题概述、数据收集与探索性分析讲起,逐步深入到特…

2026/10/9 9:56:20 阅读更多 →
Bun 都用 AI + Rust 重写了,咋不顺便把 Node.js 的 API 全兼容了?

Bun 都用 AI + Rust 重写了,咋不顺便把 Node.js 的 API 全兼容了?

说白了,兼容简单, 但是性能保证即便用AI也需要时间。最近 Bun 那边动静挺大——底层从 Zig 换成 Rust,而且这事儿 AI 还帮了不少忙。看到这个新闻,脑子里第一个冒出来的想法就是: “既然 AI 都能写代码了,让它把 Node.…

2026/10/9 9:56:20 阅读更多 →
[matlab]重写NewCallback让scatter3数据游标cursor显示点值:TaoToken统一Key接入AI辅助调试

[matlab]重写NewCallback让scatter3数据游标cursor显示点值:TaoToken统一Key接入AI辅助调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 9:56:19 阅读更多 →
应用随机过程期末通关:问题驱动的建模思维导图

应用随机过程期末通关:问题驱动的建模思维导图

1. 这不是复习提纲,而是一张“过程思维”导航图“应用随机过程”这门课,很多同学一听到名字就头皮发麻——马尔可夫链、泊松过程、平稳性、遍历性……一堆术语像砖头一样砸过来。我带过三届本科生的该课程助教,也帮某高校数学系导师整理过五年…

2026/10/9 9:56:19 阅读更多 →
OCA认证模拟题解析:Oracle升级迁移与多租户架构实战指南

OCA认证模拟题解析:Oracle升级迁移与多租户架构实战指南

简介:这份资源是面向Oracle数据库初学者的OCA认证分类模拟题集,聚焦数据库升级、迁移与空间管理等核心考点,适合正在备考OCA认证或希望系统梳理Oracle基础管理知识的考生使用。压缩包内仅含1个doc文档,体积约79KB,内容…

2026/10/9 9:56:19 阅读更多 →
智能客服系统落地指南:从FAQ到RAG的工程实践与避坑

智能客服系统落地指南:从FAQ到RAG的工程实践与避坑

简介:面向政府、企业及金融机构客服系统规划者、产品经理和技术人员的智能客服系统解决方案PDF文档,重点解决移动互联网时代全渠道服务响应慢、知识库构建周期长、人工客服成本高等难题。内容基于中科汇联三千余家行业客户的交付运维经验,系统…

2026/10/9 9:55:18 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →