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 服务器)

  1. 在「服务器地址」「端口」输入框填写目标主机与端口;
  2. 点击 连接,成功后按钮变为 断开,状态区显示已连接;
  3. 勾选 自动重连 并设置间隔(秒),断线后会自动重连,等待期间点击 取消重连 可停止;
  4. 在「发送」区输入指令 → 选择 编码 → 点击 发送(或按 Ctrl+Enter);
  5. 服务器返回的数据实时显示在「收发记录」区(蓝色为接收 RX,红色为发送 TX)。

3.2 TCP 服务端(本地 TCP 服务)

  1. 填写 监听端口,点击 启动服务
  2. 客户端接入后出现在「已连接客户端」列表中,显示 在线时长,上下线自动记录日志;
  3. 选中列表中的某个客户端,输入指令后点击 发送 为定向发送;
  4. 点击 广播 将指令同时发送给所有已连接客户端;
  5. 点击 断开所选 可主动断开列表中的客户端。

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 上另行构建)。