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-12.3开发环境本项目的采用Qt进行设计开发,Qt版本为5.7.0,在后续代码维护和修改的时候建议使用该版本或更高的版本。3模块说明 本设计中主要使用4个大类,一个QTcpServer,另外一个是QTcpSocket,主要是用于通信的,但是他们通信的时候采用了QJsonValue的数据格式进行交互,下面针对这个几个主要的模块进行简单介绍下。最后就是数据库QDataBase3.1QTcpServer类 本设计中服务器使用的就是QTcpServer,我们在使用他的时候只需要知道的一个信号就行了,就是有新的tcp链接上来的额时候,可以及时通知我,然后我这边进行客户端的链接处理。如下:m_tcpServer=newQTcpServer(this);connect(m_tcpServer,SIGNAL(newConnection()),this,SLOT(SltNewConnection()));当有新的客户端链接上来,我们只需要在这个槽函数中进行处理就行了。3.2QTcpSocket类该类为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.3QJsonValue类该类为TCP通信的参数传递类,用于封装传递消息的。其格式如下:图3-2-1JSON数据封装然后数据输出为:{"data":{"name":"xiaoni","passwd":"123456"},"from":1,"type":2}分别表示为:Type:消息传输类型(比如登陆、注册、消息发送、文件发送等)From:表示发送者的id。Data:传输数据的封装对象,里面可能是json数组或则直接就是对象//对于这个json格式的解析如下:(其他格式均是如此)//data的value是对象if(dataVal.isObject()){QJsonObjectdataObj=dataVal.toObject();QStringstrName=dataObj.value("name").toString();QStringstrPwd=dataObj.value("passwd").toString();m_nId=DataBaseMagr::Instance()->CheckUserLogin(strName,strPwd);qDebug()<<"Login"<<strName<<strPwd<<m_nId;//返回客户端QJsonObjectjson;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_EMITsignalConnected();//发送查询结果至客户端SltSendMessage

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

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