编程语言:精通 C++11/14,熟悉 STL、面向对象设计、设计模式
Qt 框架:熟练使用 Qt Widgets 模块(QTextBrowser、QTableWidget)、网络模块(QUdpSocket、QTcpServer、QTcpSocket、QNetworkAccessManager)、多线程(QThread)、信号槽机制
网络编程:掌握 UDP 广播通信、TCP 可靠传输、HTTP 请求与 JSON 解析;能设计自定义应用层协议,实现消息序列化与反序列化
多线程与并发:具备多线程编程经验,能够将耗时操作(如网络收发)移至子线程,避免界面卡顿
数据库:熟悉 SQLite 的基本使用(可用于历史消息存储)
代码规范:遵循内存管理原则(防泄漏、防野指针)、函数入参校验、异常处理;注重代码可读性与模块化
工具链:熟练使用 Qt Creator、Git、Visual Studio 进行开发和版本管理
项目概述:实现了一个无中心服务器的轻量级局域网聊天室,支持公共聊天、私聊、文件传输、用户列表动态更新、富文本消息、天气查询等功能,采用 UDP 广播作为主要通信方式,TCP 保障文件可靠传输。
核心职责:
设计并实现基于 UDP 的通信协议,支持文本消息、用户加入/退出通知、私聊标识、文件传输请求等多种消息类型;
使用 QUdpSocket 实现广播消息的发送与接收,并结合多线程优化消息处理,保证界面流畅;
开发用户登录模块,通过本机 IP 和自定义昵称标识用户,利用 QTableWidget 实时展示在线用户列表(隐藏 IP 列);
实现独立私聊窗口,采用独立 UDP 端口(如 45459)进行一对一通信;
基于 QTcpServer 和 QTcpSocket 完成文件传输模块,支持发送/接收请求、进度提示、拒绝机制;
集成 HTTP 天气查询功能,使用 QNetworkAccessManager 获取并解析 JSON 数据;
严格遵守代码规范:内存申请释放配对、指针置空、函数单一职责、变量命名自明、关键代码添加注释。