pytcper:基于 Python + tkinter 的跨平台 TCP 调试助手

pytcper是基于 Python 3 + tkinter 编写的图形化 TCP 调试工具,支持图形化界面,支持客户端与服务器端,多编码发送,接收,广播指令。零第三方依赖,可跨平台运行(Windows / Linux / macOS)。

分支3Tags6
文件最后提交记录最后更新时间
17 天前
17 天前
19 天前
16 天前
17 天前
17 天前
18 天前
17 天前
16 天前
17 天前
19 天前
17 天前
18 天前
17 天前
19 天前
18 天前

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

项目介绍

pytcper是基于 Python 3 + tkinter 编写的图形化 TCP 调试工具,支持图形化界面,支持客户端与服务器端,多编码发送,接收,广播指令。零第三方依赖,可跨平台运行(Windows / Linux / macOS)。

定制我的领域