pytcper TCP调试助手
当前版本:v2.0.001
pytcper TCP调试助手:一个基于 Python 3 + tkinter 编写的图形化 TCP 调试工具,零第三方依赖,可跨平台运行(Windows / Linux / macOS)。
开发细节(项目结构 / 源码分析 / 测试情况 / 构建打包与系统兼容性 / 版本更新记录)见 dev-doc.md。
一、功能总览
| 功能 | 说明 |
|---|---|
| TCP 客户端 | 连接任意远程 TCP 服务器,实时收发指令 |
| TCP 服务端 | 在本机监听端口,接收多个客户端连接,支持定向发送、广播、主动断开客户端 |
| 多编码支持 | UTF-8(含 BOM)/ UTF-16 / UTF-16LE / UTF-16BE / UTF-32 / UTF-32LE / UTF-32BE / GBK / GB2312 / BIG5 / Latin-1 / ASCII,支持自动编码探测,跨编码也能正确显示 |
| HEX 收发 | 发送时按十六进制字节解析,接收时可切换十六进制显示 |
| 定时循环发送 | 按设定间隔循环发送指令,可设次数(0 = 无限),随时启停 |
| 自动重连 | 客户端意外断线后按设定间隔自动重新连接 |
| 发送文件 | 选择文件按原样字节发送(适用于二进制报文 / 固件等) |
| 导出记录 | 收发记录一键导出为文本文件 |
| 历史报文 | 自动记录最近 50 条发送内容,↑/↓ 键切换,历史窗口一键重发 |
| 收发统计 | 实时显示发送 / 接收的消息条数与字节数 |
| 服务端管理 | 客户端列表显示在线时长,可一键断开所选客户端 |
| 操作体验 | Ctrl+Enter 快捷发送、发送框一键清除、窗口大小自动记忆 |
二、运行环境与启动
- 环境要求:Python 3.8 及以上(需自带 tkinter,Windows 官方安装包默认包含)
- 启动命令(本机
python不在 PATH 中,请用py启动器):
py tcp_debug_tool.py
启动后弹出主窗口,包含「TCP 客户端」和「TCP 服务端」两个标签页。
三、界面操作说明
3.1 TCP 客户端(对接远程 TCP 服务器)
- 在「服务器地址」「端口」输入框填写目标主机与端口;
- 点击 连接,成功后按钮变为 断开,状态区显示已连接;
- 勾选 自动重连 并设置间隔(秒),断线后会自动重连,等待期间点击 取消重连 可停止;
- 在「发送」区输入指令 → 选择 编码 → 点击 发送(或按 Ctrl+Enter);
- 服务器返回的数据实时显示在「收发记录」区(蓝色为接收 RX,红色为发送 TX)。
3.2 TCP 服务端(本地 TCP 服务)
- 填写 监听端口,点击 启动服务;
- 客户端接入后出现在「已连接客户端」列表中,显示 在线时长,上下线自动记录日志;
- 选中列表中的某个客户端,输入指令后点击 发送 为定向发送;
- 点击 广播 将指令同时发送给所有已连接客户端;
- 点击 断开所选 可主动断开列表中的客户端。
3.3 发送辅助功能
| 功能 | 操作 |
|---|---|
| 定时循环发送 | 设置间隔(秒)与次数(0=无限),点击 循环发送 启动,再点一次停止;失败或断线自动停止 |
| 发送文件 | 点击 发送文件 选择文件,按原样字节发送(不经过编码转换) |
| 历史报文 | 点击 历史报文 打开历史窗口,双击填入或点 填入并重发;也可在输入框按 ↑/↓ 键切换历史 |
| 清除发送框 | 点击发送区右侧 清除 按钮,一键清空发送框内容 |
| 导出记录 | 点击工具栏 导出记录 保存收发记录为文本文件 |
3.4 编码与格式选项
- 编码 下拉框:发送与接收共用的字符编码,切换后即时生效;
- HEX发送:勾选后输入框按十六进制解析,例如
01 0A FF会被当作0x01 0x0A 0xFF三个字节发送; - 接收显示HEX:勾选后接收到的字节以
AB CD 12形式展示; - 自动追加换行:文本模式发送时在指令末尾自动追加
\r\n,适合行协议调试(HEX 发送模式下不追加,避免污染字节流); - 时间戳:每条收发记录前显示
[HH:MM:SS]; - 收发统计:日志工具栏实时显示「发送 x 条 / x 字节 接收 x 条 / x 字节」。
3.5 菜单与关于
- 主窗口顶部菜单栏 帮助 → 关于开发者:显示软件版本、版权所有者与项目地址,点击项目地址可跳转浏览器打开。
四、二进制分发版
无需安装 Python,直接运行(需图形界面环境)。二进制为构建产物(不入源码仓库),构建方法、glibc 兼容性细节与跨平台限制见 dev-doc.md 构建章节。
| 产物 | 适用平台 | 说明 |
|---|---|---|
| 高兼容版(Linux x86_64) | glibc ≥ 2.17 的发行版 | openEuler 22.03 / CentOS 7 / Ubuntu 18.04+ / Debian 10+ 等,推荐分发 |
| 本机版(Linux x86_64) | glibc ≥ 2.38 的新系统 | 仅限 openEuler 25.09 等新版发行版 |
| aarch64 发布包 | Linux ARM64 | 历史发布包见 release/(PyArmor 加密 + PyInstaller 打包) |
运行方式:./pytcper(Linux)或 pytcper.exe(Windows,需在 Windows 上另行构建)。