04-功能详解
功能详解
TCP 客户端模式
- 输入远程地址和端口
- 点击 连接
- 底层创建 TCP Socket,发起三次握手
- 连接成功后状态灯变绿,可以进行数据收发
断开连接
点击 断开 或关闭窗口,底层发送 FIN 包正常关闭连接。
数据收发
- 发送:编辑框内容按指定编码转换为字节流发送
- 接收:服务端发来的数据自动显示在日志区
TCP 服务端模式
- 输入监听端口
- 点击 监听
- 底层创建 TCP Server Socket,绑定端口并开始监听
- 客户端连接时,自动添加到客户端列表
- 客户端发来数据时,显示在日志区
- 可以选中客户端并回复数据
多客户端管理
- 每个客户端独立连接,互不影响
- 发送数据时,需先在客户端列表中选择目标
- 选中客户端后点击 断开选中客户端 单独断开
- 关闭服务端时,所有客户端连接同时断开
典型应用
- 模拟 TCP 服务器,供客户端测试
- 中转/代理服务调试
- 协议开发时的对端模拟
UDP 模式
- 输入远程地址、目标端口、本地端口
- 点击 绑定
- 底层创建 UDP Socket,绑定本地端口
- 发送数据到指定的远程地址:端口
- 任何向本地端口发送数据的来源都会收到
UDP 特性
- 无连接:不需要建立连接,直接收发
- 不可靠:不保证送达,不保证顺序
- 广播/组播:可以向广播地址发送(如
255.255.255.255) - 低延迟:无连接开销,适合实时应用
注意事项
- UDP 绑定本地端口后,不限制接收来源
- 向已关闭的目标发送数据不会收到错误提示(UDP 无连接确认)
Hex 模式
勾选显示设置中的 十六进制显示 后,日志区域显示格式:
[10:23:45.123] [TX] 48 65 6C 6C 6F 20 53 65 72 69 61 6C 21
[10:23:45.125] [RX] 48 65 6C 6C 6F 20 53 65 72 69 61 6C 21
每字节转换为两位大写十六进制,空格分隔。
十六进制发送
勾选发送区的 Hex发送 后,发送框中的内容被解析为十六进制字节序列:
输入:AA 55 01 02 FF
发送:\xAA\x55\x01\x02\xFF (5 字节)
- 输入规则:
- 支持空格、短横线(
-)作为分隔符 - 不区分大小写(
aa=AA) - 奇数个十六进制字符将无法发送
快速转换技巧
在十六进制发送模式下输入:
48656C6C6F等同于发送
Hello(每两个字符组合为一个字节)。
自动发送与回车发送
- 自动发送:勾选后按指定间隔循环发送。设置步骤: 1. 勾选 自动发送 2. 设置间隔时间(如 1000ms = 1 秒) 3. 在发送框中输入数据 4. 系统自动按间隔循环发送
- 回车发送:勾选后在发送框中按 Enter 键即可发送,无需点击按钮
- 行尾:选择发送时自动追加的换行符:
无、\n、\r、\r\n。TCP 协议中常用\r\n。
编码处理
支持五种字符编码,在连接设置区选择:
| 编码 | 适用场景 |
|---|---|
| UTF-8 | 现代应用,支持多语言(默认) |
| ASCII | 纯英文文本,只支持 0-127 字符 |
| GBK | 中文 Windows 环境 |
| GB2312 | 旧式中文字符集 |
| Unicode | UTF-16 编码,部分特殊应用 |
编码影响发送和接收两方面的行为。切换编码后,后续收发数据按新编码处理。
数据可视化(图表)
- 在左侧 数据可视化 面板中勾选 启用图表
- 图表区域显示在日志下方
图表类型
| 类型 | 适用场景 |
|---|---|
| 折线图 | 连续数据趋势 |
| 平滑曲线 | 同上,更平滑的展示 |
| 散点图 | 离散数据点分布 |
| 面积图 | 强调数据量的变化 |
| 柱状图 | 分类统计/计数 |
| 饼图 | 占比分析 |
添加数据提取规则
图表需要从接收数据中提取数值才能绘图:
- 输入 规则名称(如 "温度")
- 选择规则类型并输入表达式:
| 类型 | 说明 | 示例表达式 |
|---|---|---|
| JSON 路径 | 从 JSON 数据中提取字段 | temperature 或 data.sensor1 |
| 正则表达式 | 用正则匹配提取数值 | temp[:=]\s(\d+\.?\d) |
| Modbus 寄存器 | 从 Modbus 响应中提取寄存器值 | 0(寄存器地址) |
| 布尔 | 匹配到即计为 1 | alarm=1 |
- 点击 添加规则,图表自动更新
预设模板
| 模板 | 自动生成规则 |
|---|---|
| 温度/电压 折线 | 正则提取浮点数 |
| JSON 多字段 | 两个 JSON 路径规则 |
| 百分比饼图 | 正则提取(饼图模式) |
| 频率柱状图 | 正则提取(柱状图模式) |
时间窗口
调整图表显示的时间范围:5 秒 ~ 600 秒(10 分钟)。
智能分析
点击 智能分析 按钮,程序自动扫描最近的接收数据并推荐可能的数值提取规则。
日志导出
支持两种格式:
TXT 格式
10:23:45.123 [TX] Hello Server!
10:23:45.125 [RX] Hello Client!
10:23:50.000 [SYS] 已连接 192.168.1.100:8080
10:23:45.123 [TX] Hello Server!
10:23:45.125 [RX] Hello Client!
10:23:50.000 [SYS] 已连接 192.168.1.100:8080CSV 格式
Timestamp,Direction,Data
"10:23:45.123","[TX]","Hello Server!"
"10:23:45.125","[RX]","Hello Client!"
Timestamp,Direction,Data
"10:23:45.123","[TX]","Hello Server!"
"10:23:45.125","[RX]","Hello Client!"导出时遵循当前的十六进制显示设置——如果开启了 Hex 显示,导出文件中的数据也是十六进制格式。
TCP vs UDP 选择指南
| 场景 | 推荐模式 |
|---|---|
| HTTP/HTTPS 请求 | TCP 客户端 |
| 数据库连接 (MySQL/Redis) | TCP 客户端 |
| DNS 查询 | UDP |
| 视频流传输 | UDP(或 TCP) |
| IoT 设备 MQTT | TCP 客户端 |
| 自定义二进制协议 | TCP 客户端或服务端 |
| 局域网发现/广播 | UDP |