主题
12.2 TCP 与 UDP 调试
调试工具除了串口,还能当 TCP 客户端、TCP 服务器、UDP 端点用。现场最常用的两个场景:设备往您的电脑上报数据(本机当服务器听),或者本机模拟一台设备往服务器发(本机当客户端连过去)。
收发功能、记录区、显示格式和串口完全一样,见 12.1 打开调试工具与串口调试,本页只讲怎么选角色、每个框填什么。
先确定自己是哪一种
| 角色 | 什么时候用 | 打开按钮叫什么 |
|---|---|---|
| TCP 客户端 | 对端已经在监听(一台服务器、或设备的 TCP 服务端口),本机主动去连它 | 连接 / 断开连接 |
| TCP 服务器 | 等别人来连本机。看设备上报的原始报文长什么样,最常用这一档 | 开始监听 / 停止监听 |
| UDP | 不需要建立连接,直接往某个 IP:端口发一包,或听某个端口。广播找设备、试自定义 UDP 协议 | 绑定 / 取消绑定 |
左栏顶部先点 TCP 或 UDP;选 TCP 后下面还会再多出一组 客户端 | 服务器 按钮,默认是「客户端」。
每个框填什么
| 框 | 出现在 | 说明 |
|---|---|---|
| 本机 | TCP / UDP | 选用哪块网卡,下拉里列出本机所有 IP。留空(列表里的「任意网卡」)表示不绑定网卡,多数情况下留空就行 |
| 远程IP / 端口 | TCP 客户端 | 要连的那一头。填错时几秒内就报超时,不会一直转 |
| 监听端口 | TCP 服务器 | 本机开哪个端口等人连 |
| 客户端 | TCP 服务器 | 见下一节 |
| 本机端口 | UDP | 本机收数据用的端口 |
| 对方IP / 对方端口 | UDP | 发数据的目标 |
| 允许广播 | UDP | 默认勾选。要往 192.168.1.255 这类广播地址发(比如搜索设备)就必须留着 |
几个框里预填了示例值(远程 IP 192.168.1.100、端口 5000、UDP 本机端口 5001、对方 IP 192.168.1.255),都是占位示例,用之前必须改成自己的地址。
什么时候能改,什么时候不能
除了 UDP 的对方IP / 对方端口,其它参数在连接打开后都会变灰 —— 想改就先把连接关掉。UDP 那两个框绑定了之后仍然可以改,改完下一发包就发往新地址,不用重新绑定。
TCP 服务器:同时来了好几台怎么办
选「服务器」点 开始监听 后,谁来连过都会登记进来,右下角的目标描述会写成 TCP 服务端 监听 0.0.0.0:5000。
参数区有一个 「客户端」下拉:
| 选项 | 含义 |
|---|---|
| 全部(N) | 括号里是当前连上的条数。选它时点「发送数据」,同一份报文群发给每一条连接 |
某个 IP:端口 | 只发给这一条连接 |
这个下拉是每 50 毫秒自动刷新的,设备刚连上就能看到。最多同时接 32 条连接,超了新连接会被拒掉,并在顶部红条提示 已达客户端上限(32),新连接被拒绝 —— 一般只可能是端口上挂了太多东西,正常调试碰不到。
「开始监听」不等于「已经连上」
监听开着、一条连接也没有时,灯是不亮的。灯亮表示当前确实有可用连接;设备把连接掐了,灯会灭,记录区出现 对端已关闭连接。
UDP:绑定 ≠ 连上
UDP 没有连接这回事,点 绑定 只是把本机端口开起来开始收。所以:
- 收得到不要求您填对「对方 IP」—— 谁发的都会进记录区,来源地址标在那一行前面,形如
[收][192.168.1.23:4001]; - 发得出才要求「对方 IP / 对方端口」填对;
- 想让设备搜索类的广播包发得出去,「允许广播」保持勾选。
打不开时的提示对照
| 红条提示 | 意思 | 怎么解决 |
|---|---|---|
目标 IP 非法: x.x.x.x | 远程 IP 写错了(不是点分四段数字) | 检查有没有多打空格、把端口写进 IP 框 |
连接超时: IP:端口 | 几秒内对方没响应 | 对端没开机 / IP 不通 / 中间被防火墙或路由挡住。先 ping 一下 |
连接被拒绝: IP:端口 | 能到达但那个端口没人监听 | 确认对方程序真的在跑、端口号对不对 |
绑定失败,端口可能被占用: 端口号 | TCP 服务器或 UDP 要用的端口已被本机别的程序占了 | 换一个端口,或关掉占端口的软件 |
监听失败 | 端口开不起来 | 换一个大于 1024 的端口再试 |
已达客户端上限(32),新连接被拒绝 | 连上来的客户端太多 | 停掉监听重新开一次,把旧连接清掉 |
会话已断开 | 连接中途没了 | 重新点一次打开按钮 |
只发出 x/y 字节,对方可能未及时接收 | 本机发出去了,但对方收得太慢,这一包只写进去一部分 | 拉长发送周期或先停止循环发送,见 12.3 |
两个常用组合
看设备到底往服务器上发了什么:设备侧的服务器地址指到本机 IP 和某个端口 → 本机选 TCP「服务器」、填监听端口 → 开始监听 → 等设备连上来,记录区里就是它发的原文。
用本机扮演一台设备往服务器发:本机选 TCP「客户端」,远程 IP 填服务器地址 → 连接 → 发送区拼好报文发出 → 在记录区看服务器的回应。回应格式固定、想省事的话用「自动回应」,见 12.3 报文校验、循环发送与自动回应。
相关页面
- 12.1 打开调试工具与串口调试 —— 界面分区、记录区怎么看
- 12.3 报文校验、循环发送与自动回应 —— CRC、和校验、定时重发、扮演从站
- 3.2 网口与 WiFi 参数 —— 改设备的 IP,让它和本机在同一网段
- 2.3 子网不匹配与修改 IP —— 找不到设备时的排查