资讯动态

SocketTool调试实战:TCP/UDP链路、关键参数与避坑指南

发布时间:2026/9/25 1:56:35 来源:尧图企业网站定制
简介SocketTool是一款专业的TCP通信测试工具面向网络工程师、系统管理员与软件开发者用于网络编程调试、服务器连通性检查、协议兼容性验证及性能评估。压缩包共8个文件包含Windows可执行程序、PDF使用说明与二次开发文档、txt版本说明、js脚本示例以及安装教程图示大小仅1.55MB轻量便携。文档覆盖V4.0功能操作、二次开发接口和版本更新要点可帮助用户深入理解工具内部机制工具提供TCP连接与断开、自定义数据收发、流量控制、多线程并发及日志记录等功能配合示例脚本和图形界面能快速完成连接管理、故障排查与并发压力测试。目前已有241人学习下载适合需要调试网络应用、验证服务器配置或开展TCP协议学习的人群无论是本地环境还是远程服务器均可借助它高效定位问题、优化通信过程。1. SocketToolTCP/UDP调试不写代码的入场券做物联网联调和硬件接入时最磨人的往往不是协议复杂而是链路到底通没通。写测试程序要开IDE、编译工程五分钟过去了还没走到socket那一步。SocketTool这类Windows工具把TCP Server、TCP Client、UDP收发收进同一个界面点几下就能监听一个端口、发一段十六进制报文把这块黑匣子打开。这篇笔记按实际调试顺序展开先把TCP模式的最小收发链路跑通再讲UDP透传的边界然后是避坑最后给一条能长期用的半自动回归玩法。适合做传感器接入、PLC通信、上位机联调时缺个趁手调试工具的人新手能跟着做熟手能对照查漏。2. 用TCP Server模式跑通最小收发链路监听端口与三个必调参数2.1 为什么先开TCP Server而不是TCP Client做设备调试时绝大多数场景是设备做客户端主动连电脑。单片机里的TCP/IP协议栈、4G模组的TCP透传、串口服务器的TCP Client模式都是配一个目标IP和端口然后向外连接。所以电脑这一端必须先开一个TCP Server把端口监听起来等设备连进来。反过来如果电脑做Client去连设备里跑的Server前提是设备里得有一个能配置监听端口的固件这在开发早期通常不具备。两种模式都试过之后我的习惯是只要有选择先用Server模式听包不先Client去发包。TCP Server模式还有一个好处是连接状态在界面上非常直观。设备一连进来SocketTool的连接区会多出一条会话显示对端IP和端口。很多时候硬件工程师拿过来一个模组说“我这边已经连上了”你在Server模式下一看连接列表就知道真假。这个“看到连接建立”的动作本身就是调试的第一步。TCP Server模式也方便验证设备端上下文。设备连接后你可以主动回一帧看设备是不是立刻按协议继续上报。如果反过来用Client模式去连设备设备端的主动上报链路可能压根没有起来你会得到一堆“合理但无用的数据”。Server模式让设备最真实的工作状态暴露出来省去很多绕圈子的猜测。2.2 在SocketTool里建一个TCP Server的完整步骤选本地IP、填端口、开监听打开SocketTool在协议类型下拉框选择TCP Server。不管你是SocketTool v4.0还是更早的版本这个位置的配置逻辑基本一致界面可能有细微差异。协议切换这个动作容易被忽略因为界面默认可能停在TCP Client你直接填端口点连接会报“连接被拒绝”或者根本连不上。每次开始调试前先把协议选对再往下走。本地地址一栏SocketTool会列出本机网卡的IP地址外加一个127.0.0.1的本地回环。这里要看设备和电脑之间走哪条链路设备通过网线接到电脑同一个局域网就选电脑那块网卡的局域网IP比如192.168.1.100设备通过USB转网口模块模拟出的虚拟网卡连接就选虚拟网卡的IP只做本机自测选127.0.0.1就够了但外部设备连不进来只能本机程序自己连自己。端口推荐选5000以上、没被占用的值。我常用的端口有5020、6000、8082。低于1024的端口需要管理员权限在Windows下如果SocketTool没以管理员身份运行监听会直接失败。这个坑后面避坑章节会着重说。具体操作步骤协议类型选TCP Server本地IP下拉框选电脑能被设备访问到的那块网卡IP本地端口填一个5位数例如6000点“开始监听”状态区应显示监听成功设备端配置TCP Client目标IP填电脑IP目标端口填6000触发连接连接成功后SocketTool连接列表出现对端地址收发区开始实时接收注意端口一旦固定设备端的配置里也要写同一个值。如果你改动端口设备端的参数不跟着改下次设备连接就会失败而且报错提示在设备端电脑上看不出任何异常。调试时我会在SocketTool的窗口标题或者备注里写上当前会话用的IP和端口防止自己隔了半天忘了填的是哪组值。完成后SocketTool会进入接收等待状态。设备发来的每一个字节实时显示在接收区底部状态栏有收包计数。这个计数对确认链路活性很有用设备已经连上但计数一直不动说明业务数据没上来问题在应用层协议而非链路层。2.3 连接建立后必调的三个参数HEX显示、自动接受、接收区编码第一个参数是HEX显示。默认情况下接收区按ASCII渲染设备发来的0x01这类控制字节会显示成不可见的控制字符或乱码根本没法比对协议。把显示模式切到HEX每一帧才能按字节看到真实内容。协议调试里最常做的动作就是把收到的前几个字节和协议文档里的帧头逐字节比对帧头F5、地址码、功能码对完再看业务数据。第二个参数是自动接受新连接。设备端TCP断开后重连如果SocketTool没开自动接受连接列表里会堆出一堆残留会话。调试时我会把自动接受打开同时把已经断开的旧会话手动清掉。会话一多你都不知道自己在跟哪一台设备说话清会话这个动作比想象中重要。第三个参数是接收区字符集。如果走的是HTTP调试或者Modbus ASCII这类文本协议编码选UTF-8或ASCII都行看设备端固件用什么编码。如果设备发的是GBK中文接收区停在UTF-8显示出来就是两个问号或者乱码容易误判成协议内容出错。调试嵌入式设备我一般先按ASCII看出现中文乱码再切编码不要一上来就在编码设置里反复横跳。HEX显示和字符集表面上是两个开关实际调试时要串起来看必须先知道当前收的是HEX内容还是文本内容再决定用什么模式去读。我见过不少人把HEX显示打开看到一段ASCII文本被拆成字节觉得数据不对又切回ASCII来回折腾几次都没意识到模式和内容是两件事。参数默认值调试时推荐值作用HEX显示ASCIIHEX按字节查看数据便于比对协议帧自动接受关闭打开设备反复重连时保持会话整洁接收区编码UTF-8按设备实际编码避免中文和扩展字符乱码2.4 最小回包实验手动应答和自动回复的两种做法SocketTool收到设备数据后在发送框填上应答报文点发送设备就能收到。这是手动应答。心跳包、注册包这类固定报文手动答几次可以验证设备端逻辑但长时间压测不现实。更实用的做法是把回包配置进自动回复规则。在SocketTool的自动回复配置里可以按匹配内容设置返回内容。比如设备发来C0 01 00工具自动回C0 81 00 00 00 00 CRC。这样设备端认为服务端一直在正常应答你就能连续观察它后续的业务上报。注意自动回复的匹配类型有HEX和ASCII两种匹配内容也按对应模式填别在HEX匹配里填一段ASCII字符串结果永远匹配不上。设置完自动回复建议先用设备发一帧手动的确认回包格式对再切到自动。自动回复配置好以后要盯着接收区的收包节奏看一分钟。如果设备上报频率稳定回复也稳定说明链路压测可以继续加码如果设备回包间隔忽快忽慢先不要调周期先用抓包工具看一眼是不是某些帧被工具吞了或者设备的TCP滑动窗口在反复收缩。SocketTool自动回复只负责把应用层的交互闭环底层TCP的拥塞和重传状态它不展示也不负责处理。到这里最小收发链路已经完整。你已经能开一个监听端口、看设备连接、收报文、回报文。这套流程是后续所有联调动作的地基。3. UDP模式与设备主动上报模拟无连接特性下的四个边界3.1 SocketTool的UDP模式三个配置项本地端口、目标IP、目标端口怎么填UDP模式和TCP模式最大的差异是没有“连接”这个概念。SocketTool的UDP界面通常有三个重点配置本地端口、目标IP、目标端口。本地端口是本机用来收发UDP数据的端口设备和电脑要约定好目标IP填设备IP目标端口填设备监听端口。配置完成点开始工具就进入UDP收发状态。三个格子各自的功能不要混淆配置项含义填错时的表现本地端口SocketTool本机绑定的端口设备回包要发到这里设备回包发出但工具收不到目标IP工具每次发送报文的目的IP数据发到错误地址设备无响应目标端口工具发送报文的目的端口也是设备监听端口设备端口不匹配报文被丢弃一个经常踩的误区是目标IP和目标端口不是“连一次就完”的会话参数它们是发送动作的默认目的地址。你每次点发送报文都发往这个组合。如果设备临时换了IP或者忘了改目标端口发出去的报文就去了一个没人听的地址SocketTool不会报错设备端也收不到整个链路看起来“像通但实际上没通”。这是UDP调试比TCP更容易翻车的地方TCP状态不对会直接报错UDP完全靠自觉。配置完成后建议先用本机自测验证配置没有填错。具体做法SocketTool的UDP本地端口填6000目标IP填127.0.0.1目标端口填6000点发送接收区应当立刻收到自己发的报文。如果这条自环通了说明工具本身工作正常如果自环都不通优先怀疑网卡驱动或者工具版本问题不要急着去连设备。3.2 用UDP广播做设备发现255.255.255.255与子网定向广播的差异设备上线后要主动找服务器最简单的方式是发UDP广播。在SocketTool里把目标IP填成255.255.255.255就能把报文发到当前子网的所有设备。这个操作在设备发现、固件广播、网关搜索时非常有用。但广播地址有两种写法效果不一样。255.255.255.255是受限广播只能在本机所在子网内转发路由器不会把它转发到别的网段192.168.1.255这种子网定向广播在一些开启了定向广播转发功能的网段里可以跨VLAN。实际调试时绝大多数场景用255.255.255.255就够了。如果你发现设备在另一个网段收不到广播不要纠结广播地址写法先检查电脑和设备是不是真的在同一个子网里。还有一种情况是设备端开启了DHCP电脑这边用的是自动获取的IP两边没有事先约定网段。这时候广播能通但不一定能被设备正确处理。设备端如果配置了静态IP在192.168.2.x电脑却在192.168.1.x广播报文即使到达了二层设备也不会认为这是在找它。先统一网段再谈广播发现这比在SocketTool里反复改广播地址效率高得多。3.3 UDP能发不能收防火墙、本地端口与回包源端口的三层排查UDP调试里出现频率最高的问题是“发得出去收不回来”。UDP发送不需要经过监听确认报文从网卡发出去就完事了所以“发得出去”根本不证明链路是通的。收不到回包按这个顺序排查第一步确认本地端口。设备收到请求后应答可能是从另一个端口发出的。如果设备回包的源端口和SocketTool的本地端口不一致你在工具上就收不到任何数据。解决方法是先抓包看设备实际从哪个端口回包再把本地端口对到回包的源端口上。某些版本的SocketTool允许把本地端口设为0或随机让工具自动匹配回包来源这在设备端口不固定时很省事。第二步检查Windows防火墙。防火墙默认会拦截入站的UDP数据包。TCP连接时防火墙通常还会弹一个是否允许的对话框UDP入站往往直接被静默丢掉不弹窗也不记录。第一次遇到UDP收不到数据的场景先看防火墙入站规则里有没有放行SocketTool这个动作在所有其他猜疑之前做能省下一大块时间。第三步验证回包路径。看设备回包的源IP是否真的指向了电脑IP。有些设备固件会把回包发到一个固定的服务器地址而不是发给发请求的源地址。这种情况下UDP应用层路径是断的和SocketTool本身没有关系。用抓包工具看设备出口报文的目标IP如果目标IP不是电脑的IP问题在设备固件配置不在工具。UDP收发的两条路径是独立的发得通不代表收得通。排查时心里始终装着“发送路径”和“接收路径”两条线一条一条验证最后再下结论。3.4 多设备同时上报怎么区分来源来源地址显示与单设备验证因为无连接SocketTool通常不会像TCP那样维护一个清晰的多会话列表。同一时段内多个设备同时上报接收区的数据是混着来的很难分清哪一帧来自哪个设备。这时候需要在接收区把每帧数据附带的“来源IP:端口”显示出来。SocketTool的数据区在UDP模式下会带来源列或者通过数据行首部的地址前缀来分辨。调多设备的时候我一般先把一台设备单独发几帧记住它的IP和端口格式再放第二台进来。这样即使混着也能靠来源地址把每一帧分开。另外要留意多个设备的端口如果相同比如都占用了6000那来源地址里只有IP不同。如果IP也相近就得通过设备序号字段去区分。调试协议的时候我会让每台设备的第一个字段带设备ID先把ID写到协议里再靠SocketTool的数据去确认ID值这样比看IP可靠得多。协议字段是调试的最终依据工具显示只能用作辅助。4. 数据收发的四个关键参数定时发送、HEX转义、分包显示与文件载荷4.1 定时发送周期怎么选100ms与1000ms之间没有玄学SocketTool自带定时发送功能设定一个周期后工具会按固定间隔自动把发送框里的数据发出去。这个功能在做心跳测试、压力测试、设备保活验证时是主力。周期选择上如果设备端的协议栈处理能力一般我建议从1000ms起步。把设备的接收日志打出来确认每一帧都能被正常解析、回复再把周期往下压。很多新手一上来就设100ms结果设备端收到的报文在缓冲区里粘成一片解析崩了反过来怀疑工具丢包。其实工具是按周期发的是设备端来不及处理。往下压周期时重点看两个指标一是设备端有没有恢复包缺失二是设备端有没有收到重复帧。恢复包缺失说明周期小于设备处理时延需要把周期调到设备处理时延以上。重复帧则说明设备应用层没有做去重这种情况调大周期也只是缓解。定时发送不只解决“发”还能顺带测出设备端处理的时延上限这是调试的附加收获。场景推荐周期判断依据心跳保活3000ms到10000ms保证设备不被判定离线即可常规指令轮询500ms到1000ms设备能稳定回包不丢应用层帧压力测试从100ms起逐级下调出现恢复包缺失即停止实际压测时SocketTool的接收区刷新很快肉眼看不过来。我建议打开接收区的“暂停显示”或者“自动滚屏”开关让数据先进缓冲区等一轮发完再停下来看。没有暂停显示的版本就把接收区内容复制到文本编辑器里按字节数核对有没有缺帧。4.2 HEX与ASCII互转两个最常犯的编码坑HEX模式下发送框里每两个十六进制字符代表一个字节。比如要发4字节数据AA BB CC DD发送框里输入AABBCCDD。中间的空格通常会被工具忽略不用刻意删但一定要确认当前是HEX模式。这里的高频坑是在HEX模式下输入“ABCD”工具会认为这是两个字节0xAB和0xCD而不是发“ABCD”这四个字母。反过来在ASCII模式下输入“ABCD”发出去的才是ASCII编码的4个字符。第二个高频坑是换行符。设备协议里很多命令以回车换行结束HEX模式对应要发0D 0A文本模式对应\r\n。SocketTool通常有一个“发送新行”的选项勾上之后会在每次发送时自动追加\r\n。如果你不勾设备端按行解析就会一直收不到完整的一行命令。我见过的最常见问题就是调试Modbus ASCII指令时HEX区里发了完整报文但忘了发0D 0A结尾设备死活不回复补一个换行就通了。还有一个隐藏细节HEX模式下输入的数据如果包含非十六进制字符比如你顺手打了“AB GH”工具可能直接忽略GH也可能报错不同版本行为不一样。发之前先扫一眼要发的内容确认都是由0-9和A-F组成。这个动作花不了两秒钟能省下“为什么发的数据和我填的不一样”的排查时间。4.3 粘包与分包在工具层分辨一条完整帧的方法TCP是流式协议没有消息边界。一个逻辑上的完整报文可能被拆成多个TCP段到达也可能多帧粘在一个段里到达。SocketTool的接收区只是展示字节流不负责替你做协议解析所以你看到的是底层数据不是处理过的消息。判断粘包最简单的方法看帧长度。比如协议规定一帧36字节结果接收区一口气显示了72字节几乎可以断定是两帧粘在一起。这时候不要怀疑SocketTool显示错它是按接收顺序把底层数据吐出来的。要验证粘包的边界把收到的一段数据按协议字段逐个字节拆开找到帧头特征字节在第几个位置就知道粘了几帧。帧头在开头固定义字节的协议比如帧头F5 F5开头的用肉眼按F5 F5找边界就够了。分包则表现成另外的样子一帧36字节的数据接收区先到了20字节过了几十毫秒又补了16字节。这也不是SocketTool丢数据是TCP分段到达。确认分包的方法是看两次到达的时间间隔。如果间隔稳定且远小于业务周期说明是底层分包如果间隔很长才需要怀疑设备端是不是分两次send了。UDP模式下不存在粘包UDP保留报文边界一收就是一整报文这算是UDP调试比TCP省心的一个点。4.4 用文件发送模拟大包上送大载荷下的两个注意点SocketTool支持从文件读取数据并发送。当你要模拟一个大文件上传或者一次性下发几百KB的配置把十六进制的数据写进文件再通过SocketTool发送比在发送框里粘贴几十万字节要现实得多。文件发送有两个注意点。第一文件读取模式和发送框的模式必须一致文件里存的是HEX文本发送框就切到HEX文件存的是ASCII内容就切到ASCII。模式不一致时工具会把文件里的文本内容按错误的规则编码发出去的数据和预期完全对不上。第二大文件发送时实际触发的还是底层socket的一次或多次send调用TCP会自动分片但这不代表设备端有能力按应用层大报文处理。真正测试前先用短延时逐段发送观察设备端逐段解析是否正确再提速。这能避免一上来就把设备的接收缓冲区打爆。文件发送还有一个边界场景文件本身包含不可见字符。用十六进制编辑器生成的文件里面可能有0x00、0xFF这类字节。SocketTool读取文件时如果按文本方式打开这些字节可能被当作文本控制符吞掉。所以用文件发送做二进制载荷测试时文件格式必须选二进制模式或者在HEX模式下用文本形式表示二进制流再发送。这个点容易被忽略但踩过一次后就再也忘不了了。5. SocketTool避坑指南五条现场翻车记录与排查路径以下五条都是实际调设备时踩过的坑按现象、原因、解决三步展开方便直接对照排查。5.1 端口被占用监听失败的处理现象点“开始监听”后SocketTool状态栏立即报错提示本地端口绑定失败或者监听按钮自动弹回未启动状态。原因端口已被另一个程序占用。很多时候是上次调试的进程没有退出SocketTool自己还残留在后台或者是IIS、SQL Server这类程序占用了相同端口。Windows下端口是独占资源一个端口同时只能被一个进程监听。解决打开命令行执行 netstat -ano | findstr 6000找到占用6000端口的PID再在任务管理器里按PID定位进程结束掉它或者直接换一个端口。换端口是最快的路不用纠结为什么被占。如果换了端口还报错检查SocketTool是否在管理员权限下运行——低于1024的端口需要管理员权限普通权限下也会绑定失败。如果netstat里找不到占用进程可能是Windows系统服务或Hyper-V保留了这个端口执行 netsh interface ipv4 show excludedportrange protocoltcp 可以查看保留范围遇到这种情况换一个不在保留范围内的端口最省事。5.2 防火墙拦截设备连不进的排查现象设备端显示TCP连接超时但电脑上SocketTool的Server一直在监听状态正常重发连接请求依旧超时。原因Windows防火墙拦截了入站连接。尤其是从外网或不同子网的设备访问电脑时防火墙默认是拒绝的而且不会有任何弹窗提示属于静默拦截。解决在Windows防火墙“允许应用通过防火墙”中把SocketTool加入允许名单同时勾选“专用”和“公用”网络。改完设置后防火墙规则对已经处于监听状态的端口不一定立即生效需要把SocketTool的监听停掉再重新开始一次。验证是否还拦截可以用另一台电脑执行 telnet 192.168.1.100 6000能进入黑窗口说明端口通了如果一直卡在连接中说明防火墙或者路由有问题。Windows自带的telnet客户端可能没启用用PowerShell的 Test-NetConnection -Port 6000 也一样。提示每次改动端口或防火墙规则后务必先停一次监听再重新开始规则变更才会完整生效。5.3 HEX模式长度翻倍模式没切对现象发送框里输入“0A”点击发送后接收端收到的却是两个字节0x30 0x41也就是ASCII字符“0”和“A”。原因SocketTool此时处于ASCII模式把输入内容当作普通文本做了ASCII编码后发送而不是把十六进制字符转换成字节。0x30对应ASCII的“0”0x41对应ASCII的“A”所以一个“0A”被当成两个字符发出去。解决发送前先确认工具右下角的模式指示是HEX还是ASCII。两种模式的切换按钮位置很浅但这是收发是否正确的关键。我的习惯是发送前看模式指示再动手形成固定动作。还有一点如果接收端也是HEX显示你会看到“30 41”两个字节这时候别觉得是0A被转义了直接回头检查发送框的模式。5.4 UDP能发不能收收发两条路径分开验证现象UDP模式下设备端能收到电脑发的数据也回包了但SocketTool就是收不到任何应答。原因最常见的是设备应答的源端口和SocketTool的本地端口不一致另一大原因是防火墙静默丢弃入站UDP包还有可能是设备回包的目标IP不是电脑IP。解决第一步用抓包工具看设备回包的实际源端口把SocketTool本地端口对到回包的源端口上。第二步把防火墙入站规则放行UDP。第三步检查设备回包的目标IP是不是电脑IP。如果设备回包频率很低先用连续发送100帧的方式确认不是偶发丢包有些工具在接收缓冲区满的时候会丢显示但不丢底层数据这时候把接收区数据保存下来核对字节数。这组动作就是前面章节讲过的三层排查真正执行的时候要按顺序来不要一上来就改设备固件。5.5 接收区中文乱码编码不一致现象设备发来一帧按GBK编码的中文串SocketTool接收区显示成乱码或问号本来应该显示“温度25”的报文看起来像一段不可读的字符。原因接收区显示编码和设备的实际编码不一致。默认显示编码往往是UTF-8或ASCIIGBK的字节被按别的规则解码显示层自然就乱了。解决在SocketTool的显示设置里切换编码为GBK/GB2312或者切到HEX模式先看字节内容再自己转码。GBK中文在HEX模式下显示为两个字节一组比如“温度”对应CE C2 B6 C8你可以对着GBK码表确认。不要看乱码就怀疑数据丢了原始数据大概率是完好的只是显示层没选对编码。协议调试场景里优先用HEX模式看字节能用HEX解决的就不依赖显示编码。6. 把SocketTool从手动工具变成半自动回归记录回放与脚本对照调试最怕的是修好一个问题又把另一个问题弄坏。所以我后来养成一个习惯不只在SocketTool里手动点而是把关键场景录成固定的收发序列每次改完固件或上位机就跑一遍回归。在SocketTool里接收和发送的历史可以导出。我把每次联调的数据存成文件标注好“这是设备端应该返回的黄金样本”。第二天再调先把这些样本抓回来跑一遍。跑的方式很简单手动把历史帧按原顺序发一遍对照接收区和保存的样本逐字节比对。差异一眼就能看出来这比重新回忆上次的报文要可靠得多。光靠手动回放还是不够。如果掌握基础编程可以把SocketTool的这套交互抽成一个Python脚本实现真正的自动化回归。我在用的Windows机器上跑的是SocketTool v4.0下面的脚本对照在v4.0和更早版本上都能跑。下面是一段最小的TCP回环测试脚本它起一个客户端连接SocketTool监听的端口按顺序发送三帧固定报文并校验应答里的帧头import socket HOST 192.168.1.100 # SocketTool所在电脑的IP PORT 6000 # SocketTool TCP Server监听的端口 frames [ b\xC0\x01\x00\x00, b\xC0\x02\x00\x01, b\xC0\x03\x00\x02, ] sock socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(3) sock.connect((HOST, PORT)) try: for i, frame in enumerate(frames): sock.send(frame) resp sock.recv(1024) if resp[:1] ! b\xC0: print(f第{i1}帧应答帧头错误: {resp.hex()}) else: print(f第{i1}帧正常, 应答长度{len(resp)}字节) finally: sock.close()这段脚本把SocketTool当成一个标准的TCP服务端这样不需要在SocketTool里手点发送脚本代替你做收发验证。逻辑说明脚本按顺序发三帧recv只读一次应答因为测试用的应答都是短报文一次recv够用settimeout(3)防止设备端无响应时脚本卡死。如果应答报文超过1024字节需要循环recv拼接这是一个常见的改进点。跑完脚本再回SocketTool看接收区三帧报文是不是按顺序到齐了一目了然。如果做UDP的回归把socket换成SOCK_DGRAM并用recvfrom接收逻辑一样。进阶到这一步你已经不是在用工具本身而是在用工具搭一个可复现的测试基线。我习惯把这个脚本存成一个标准测试套件每次协议更新都跑一遍。以前手动排错要花十几分钟的事现在几十秒就能确认回归通过。希望帮到你。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑