logo

您所在位置网站首页 > 海量文档  > 教学课件 > 大学课件

基于Qt的局域网通信设计说明书.doc 12页

本文档一共被下载: ,您可全文免费在线阅读后下载本文档。

  • 支付并下载
  • 收藏该文档
  • 百度一下本文档
  • 修改文档简介
全屏预览

下载提示

1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
下载地址
需要金币:100    文档纠错   收藏文档   下载帮助
支付并下载
文档控制记录 序号 版本 日期 修改内容 修改人 审批人 1 V1.0 2017-04-24 创建 2 目录 目录4 辅助功能设计 14 1目的 本文主要介绍利用Qt实现局域网通信的主要实现流程和一些技术知识点的设计说明。 2总体设计 2.1 功能特点 这款局域网通信软件是基于Qt的实现的C/S架构通信,通信功能全部采用QTcpSocket完成的。该软件分为2部分,一部分是服务端,一部分是客户端。 消息通信采用QJsonValue的格式进行封装,方便封装和解析。 2.2 模块结构 整个设计可以大致分为服务端、客户端,服务端功能相对比较单一,仅仅做了客户端的消息管理和转发等。数据库读写等。客户端相对较为丰富。包括好友管理、群组管理、tcp消息管理,数据库管理, 整个项目设计的功能的设计流程图大致如下所示: 图2-1 2.3 开发环境 本项目的采用Qt进行设计开发,Qt版本为5.7.0,在后续代码维护和修改的时候建议使用该版本或更高的版本。 3模块说明 本设计中主要使用4个大类,一个QTcpServer,另外一个是QTcpSocket,主要是用于通信的,但是他们通信的时候采用了QJsonValue的数据格式进行交互,下面针对这个几个主要的模块进行简单介绍下。最后就是数据库QDataBase 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: 消息传输类型(比如登陆、注册、消息发送、文件发送等) 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" << strNa

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片

©2010-2013 max.book118.com在线文档投稿赚钱网. All Rights Reserved 蜀ICP备08101938号