- 10
- 0
- 约3.99千字
- 约 12页
- 2018-02-28 发布于贵州
- 举报
基于Qt的局域网通信设计说明书论文
文档控制记录
序号 版本 日期 修改内容 修改人 审批人 1 V1.0 20104-24 创建 2
目录目录 2
1目的 3
2总体设计 3
3模块说明 4
14
1目的
2总体设计
2.1 2.2 模块结构
整个项目设计的功能的设计流程图大致如下所示:
图2-1
2.3 开发环境
本项目的采用Qt进行设计开发,Qt版本为5.7.0,在后续代码维护和修改的时候建议使用该版本或更高的版本。
3模块说明
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:},from:1,type:2}
分别表示为:
Type: 消息传输类型(比如登陆、注册、消息发送、文件发送等)
From: 表示发送者的id。
Data:传输数据的封装对象,里面可能是json数组或则直接就是对象
// 对于这个json格式的解析如下:(其他格式均是如此)
// data 的 value 是对象
if (dataVal.isObject()) {
QJsonObject dataObj = dataVal.toObject();
QString strName = dataObj.value(name).toString();
QString strPwd = dataObj.value(passwd).toString();
m_nId = DataBaseMagr::Instance()-CheckUserLogin(strName, strPwd);
qDebug() Login strName strPwd m_nId;
// 返回客户端
QJsonObject json;
json.insert(id, m_nId);
json.insert(code, -1 == m_nId ? m_nId : 0);
json.insert(msg, -1 == m_nId ? error : ok);
if (-1 != m_nId) Q_EMIT signalConnected();
// 发送查询结果至客户端
SltSendMessage(Login, json);;
}
3.4 QSqlDataBase类
该类为数据库引擎类,在本设计中,服务端和客户端均采用数据库的方式进行数据的保存。
服务端:
创建用户数据库表
query.exec(CREATE TABLE USERINFO (id INT PRIMARY KEY, name varchar(20),
passwd varchar(20), status INT, groupId INT, lasttime DATETIME););
Id Name Passwd Status groupId lasttime 唯一标识 用户名 用户密码 线上状态 群组id 最后时间
您可能关注的文档
- 基于AT89S52单片机的智能小车设计论文.doc
- -基于PIC单片机的步进电机控制系统设计论文.doc
- 基于ATT7022A无功补偿控制器论文.doc
- 基于AT89S52单片机温度控制系统设计论文.doc
- 基于ATmega8单片机寻迹小车设计论文.doc
- 基于AT89S52单片机简易数控直流电压源的设计论文.doc
- 基于bmp085气压传感器制作的大气压强、温度、海拔高度测量仪(含详细源代码)论文.doc
- 基于C++的万年历系统设计论文.doc
- 基于C51单片机DS18B20温度计的设计与实现论文.doc
- 基于CAN总线数据采集系统的设计与实现——CAN总线通信实验论文.doc
- 2026及未来5年中国电磁铁行业市场发展监测及投资战略咨询报告.docx
- 2026及未来5年中国建筑工程机械行业市场发展监测及投资战略规划报告.docx
- 2026及未来5年中国硫化镍行业市场调研分析及投资战略规划报告.docx
- 2026及未来5年中国烷化剂市场运营态势及发展前景预测报告.docx
- 2026年涤纶细旦长丝项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年弓型虫抗体试剂项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年拖链系统用高柔性数据传输电缆项目可行性研究报告(市场数据调查、监测研究).docx
- 2025年中国水晶圆盘市场调查研究报告.docx
- 2025年中国长网双辊挤浆机市场调查研究报告.docx
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
原创力文档

文档评论(0)