本项目是一款针对局域网内嵌入式开发的简易消息发送工具,解决了在开发调试过程中信息传递不便的问题。相比传统的文件传输工具或即时通讯软件,本工具专注于:
快速、稳定的文本消息通信
任意长度、多行内容传输,无乱码
跨设备、跨平台使用(Windows 和 Linux)
无需外部网络支持
开发本工具的初衷是:在嵌入式开发过程中,复制粘贴文本效率低、某些通讯软件发送多行内容可能乱码或受字数限制,导致开发调试不便。因此设计了这套轻量级工具,实现局域网内快速消息发送与接收。
跨平台支持:Windows 和 Linux
服务端 IP 未指定时自动检测本机所有网口
消息稳定传输:支持任意长度文本、多行内容,无乱码
自动重连:断开连接后自动尝试重连
轻量易用:界面简洁,部署简单
无需登录
局域网内嵌入式开发调试
跨设备传递代码片段或日志信息
替代微信在局域网内的临时消息传递
实时协助测试或调试嵌入式设备
-
解压、运行exe文件。
-
配置IP和端口(服务端配置为0.0.0.0或空即监听所有IP,同一设备内可使用127.0.0.1)。
-
服务端点击监听,客户端点击连接,实现连接成功即可完成通讯。
使用方法与Windows下相同,但需要自行编译。
-
安装Qt。
-
git clone https://github.com/guo-yong-kang/LAN-Messenger-Tool.git
-
使用Qt打开本程序,其中ChatServer为服务端项目,ChatClient为客户端项目。
-
编译运行。
| 文件名 | 功能说明 |
|---|---|
| chatserver.cpp | 服务端主逻辑实现,包括服务器启动、客户端连接管理、消息收发等功能。 |
| chatserver.h | chatserver.cpp 对应的头文件,定义类、函数接口和成员变量。 |
| ChatServer.pro | Qt 工程文件,定义项目配置、源文件、资源文件等,用于 Qt Creator 或 qmake 构建。 |
| chatwindow.cpp | 聊天窗口界面逻辑实现。 |
| chatwindow.h | chatwindow.cpp 的头文件,定义窗口类和成员函数接口。 |
| config.cpp | 配置文件读取和写入功能实现,包括客户端和服务端配置管理(如端口、IP、显示设置)。 |
| config.h | config.cpp 对应的头文件,定义配置类接口和结构。 |
| configwidget.cpp | 配置界面实现,提供图形界面让用户修改参数。 |
| configwidget.h | configwidget.cpp 的头文件,定义配置界面类和接口。 |
| main.cpp | 程序入口,初始化 Qt 应用、创建主窗口实例并显示。 |
| messagebubble.cpp | 消息气泡样式实现,包括不同类型消息(发送/接收)气泡的绘制和布局。 |
| messagebubble.h | messagebubble.cpp 的头文件,定义消息气泡类接口。 |
| resource.cpp | 一些宏定义和样式表。 |
| resource.h | resource.cpp 对应头文件。 |
| resource.qrc | Qt 资源文件,列出项目中使用的图标、图片等文件路径,用于打包到程序中。 |
| resource.rc | Windows 资源文件,定义图标,用于 Windows 平台编译时使用。 |
| 文件名 | 功能说明 |
|---|---|
| ICON.ico | 程序主图标,用于 Windows 系统任务栏和窗口图标。 |
| ICON.png | 程序使用的其他图标。 |
与ChatServer一致。
客户端和服务端的配置文件使用不同名字,可以把客户端和服务端可执行文件放在同一目录下。
点击发送自动删除输入框信息。
滚动条自动滚动到底部。
气泡消息:支持消息以气泡形式显示。
清空消息:一键清空聊天记录。
超时重连时间:设置连接超时后自动重连的时间。
右键操作:气泡消息支持右键全选和复制。
键盘操作:点击气泡后快捷键全选和复制。
连接状态显示:显示连接断开或失败的原因。
重连次数显示:显示当前重连的次数。
无法重连的连接失败处理:在连接失败且无法重连时,自动停止重连并显示错误信息,避免重复尝试连接。
气泡颜色:可自定义气泡背景颜色。
文字颜色:可自定义消息文字颜色。
字体大小:支持调整消息显示字体大小。
默认IP配置:可设置默认连接的 IP。
默认最大重连次数配置:可设置默认最大重连次数,超过之后不再重连。
默认端口配置:可设置默认连接端口。
历史消息最大数量:可配置最大历史消息存储数量。
Qt 5 或 6(支持跨平台 GUI 开发)
编译服务端和客户端程序
启动服务端(可指定 IP,也可留空自动检测),点击监听
启动客户端,输入目标 IP ,点击连接
连接成功后即可通讯


