基于 Qt 的局域网通信设计说明书
文档控制记录
序号 版本 日期 修改内容 修改人 审批人
1 V1.0 2017-04-24
创建
2
Xxxx 专业 1 班 第 1 页 共 14 页
基于 Qt 的局域网通信设计说明书
目录
1 目的........................................................................................................................................................3
2 总体设计................................................................................................................................................3
2.1 功能特点.........................................................................................................................................3
2.2 模块结构.........................................................................................................................................4
2.3 开发环境.........................................................................................................................................4
3 模块说明................................................................................................................................................4
3.1 QTCPSERVER 类..............................................................................................................................5
本设计中服务器使用的就是 QTCPSERVER,我们在使用他的时候只需要知道的一个信号就行
了,就是有新的 TCP 链接上来的额时候,可以及时通知我,然后我这边进行客户端的链接处
理。如下:...........................................................................................................................................5
当有新的客户端链接上来,我们只需要在这个槽函数中进行处理就行了。...............................5
3.2 QTCPSOCKET 类..............................................................................................................................5
3.3 QJSONVALUE 类..............................................................................................................................5
3.4 QSQLDATABASE 类.........................................................................................................................6
表 3-4-1 用户数据库表设计................................................................................................................6
表 3-4-2 用户数据库表设计................................................................................................................7
表 3-4-3 用户数据库表设计................................................................................................................7
表 3-4-4 用户数据库表设计.................................................................................................................7
表 3-4-5 用户数据库表设计.................................................................................................................7
4.1 服务端界面设计.............................................................................................................................7
4.2 客户端界面设计.............................................................................................................................8
4.3 客户端界面设计...........................................................................................................................13
4.4 其他设计.......................................................................................................................................14
Xxxx 专业 1 班 第 2 页 共 14 页
基于 Qt 的局域网通信设计说明书
1 目的
本文主要介绍利用 Qt 实现局域网通信的主要实现流程和一些技术知识点的设
计说明。
2 总体设计
2.1 功能特点
这款局域网通信软件是基于 Qt 的实现的 C/S 架构通信,通信功能全部采
用 QTcpSocket 完成的。该软件分为 2 部分,一部分是服务端,一部分是客户
端。
消息通信采用 QJsonValue 的格式进行封装,方便封装和解析。
Xxxx 专业 1 班 第 3 页 共 14 页
基于 Qt 的局域网通信设计说明书
2.2 模块结构
整个设计可以大致分为服务端、客户端,服务端功能相对比较单一,仅仅做了客户端
的消息管理和转发等。数据库读写等。客户端相对较为丰富。包括好友管理、群组管理、
tcp 消息管理,数据库管理,
整个项目设计的功能的设计流程图大致如下所示:
图 2-1
2.3 开发环境
本项目的采用 Qt 进行设计开发,Qt 版本为 5.7.0,在后续代码维护和修改的
时候建议使用该版本或更高的版本。
3 模块说明
本设计中主要使用 4 个大类,一个 QTcpServer,另外一个是 QTcpSocket,
主要是用于通信的,但是他们通信的时候采用了 QJsonValue 的数据格式进行
交互,下面针对这个几个主要的模块进行简单介绍下。最后就是数据库
QDataBase
Xxxx 专业 1 班 第 4 页 共 14 页
服务器(数据库)
客
户
端
客
户
端
客
户
但
客
户
端
基于 Qt 的局域网通信设计说明书
3.1 QTcpServer 类
本设计中服务器使用的就是 QTcpServer,我们在使用他的时候只需要知
道的一个信号就行了,就是有新的 tcp 链接上来的额时候,可以及时通知我,
然后我这边进行客户端的链接处理。如下:
m_tcpServer = new QTcpServer(this);
connect(m_tcpServer, SIGNAL(newConnection()), this,
SLOT(SltNewConnection()));
当有新的客户端链接上来,我们只需要在这个槽函数中进行处理就行了。
3.2 QTcpSocket 类
该类为 TCP 的通信类,主要是链接服务器与客户端的。当连接或者断开开都
可以获取该消息通知。并做出相应的处理。
connect(m_tcpSocket, SIGNAL(readyRead()), this, SLOT(SltReadyRead()));
connect(m_tcpSocket, SIGNAL(connected()), this, SLOT(SltConnected()));
connect(m_tcpSocket, SIGNAL(disconnected()), this,
SLOT(SltDisconnected()));
3.3 QJsonValue 类
该类为 TCP 通信的参数传递类,用于封装传递消息的。其格式如下:
图 3-2-1 JSON 数据封装
然后数据输出为:
{"data":{"name":"xiaoni","passwd":"123456"},"from":1,"type":2}
分别表示为:
Type: 消息传输类型(比如登陆、注册、消息发送、文件发送等)
Xxxx 专业 1 班 第 5 页 共 14 页
- 1
- 2
- 3
前往页