当前位置: 首页 > news >正文

网站建设咨询有客诚信网站建广州网站建设设计公司

网站建设咨询有客诚信网站建,广州网站建设设计公司,网站建设个人工作室,公司网站建设项目详情文章目录概要:本期主要讲解QT中对于TCP协议通信的实现。一、TCP协议二、Qt中TCP协议处理1.QTcpSocket2.QTcpServer三、Qt实现TCP通信1.客户端2.服务器端结尾概要:本期主要讲解QT中对于TCP协议通信的实现。 一、TCP协议 传输控制协议(TCP&am…

文章目录

  • 概要:本期主要讲解QT中对于TCP协议通信的实现。
  • 一、TCP协议
  • 二、Qt中TCP协议处理
    • 1.QTcpSocket
    • 2.QTcpServer
  • 三、Qt实现TCP通信
    • 1.客户端
    • 2.服务器端
  • 结尾

概要:本期主要讲解QT中对于TCP协议通信的实现。

一、TCP协议

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 定义。
TCP建立连接前,需要进行三次握手,如下图所示:
在这里插入图片描述
TCP断开连接前,需要进行四次挥手,如下图所示:

在这里插入图片描述

二、Qt中TCP协议处理

Qt中提供了QTcpSocket类和QTcpServer类分别用于创建TCP套接字和TCP服务器套接字。

1.QTcpSocket

QTcpSocket类继承与QAbstractSocket,主要提供了socket套接字的创建、绑定端口、连接服务器等。
QAbstractSocket类

2.QTcpServer

QTcpServer类继承于QSctpServer,主要提供了对于TCP连接信号的响应和监听等。
QTcpServer

三、Qt实现TCP通信

1.客户端

客户端是发送端,主要实现与服务器端建立连接、发送数据。步骤如下:
建立TCP套接字 --> 连接服务器 --> 发送数据
下面是客户端的源码:

#ifndef TCPCLIENT_H
#define TCPCLIENT_H#include <QObject>
#include <QTcpSocket>
#include <QHostAddress>
#include <QDebug>
#include <QTimer>class TCPClient : QObject
{Q_OBJECT
public:TCPClient();void InitSocket();//初始化Socket套接字void InitTimer();//初始化定时器,定时发送void ConnectToServer();//连接服务器void SendData();//发送数据private:QTcpSocket *mTcpSocket;//Tcp连接套接字QHostAddress mServerAddress;//服务器IPQTimer *mTimer;//定时器对象};#endif // TCPCLIENT_H
#include "tcpclient.h"TCPClient::TCPClient()
{InitSocket();ConnectToServer();InitTimer();}void TCPClient::InitSocket()
{mTcpSocket = new QTcpSocket;//初始化Tcp连接套接字mServerAddress.setAddress("10.0.0.177");//设置服务器地址
}void TCPClient::InitTimer()
{mTimer = new QTimer;//初始化定时器对象connect(mTimer,&QTimer::timeout,this,[=]{SendData();});mTimer->start(1000);//每隔一秒发送一次数据
}void TCPClient::ConnectToServer()
{quint16 _port = 7777;//设置服务器端口connect(mTcpSocket,&QTcpSocket::connected,this,[=]{qDebug()<< "Connect To Server Successful!"<<endl;});mTcpSocket->connectToHost(mServerAddress,_port,QIODevice::WriteOnly);//连接服务器}void TCPClient::SendData()
{QByteArray _data = "hello";if(-1 != mTcpSocket->write(_data.data(),_data.length())){qDebug()<< "TCP ==> Send data : "<< _data<<endl;}mTcpSocket->flush();
}

2.服务器端

服务器端是接收端,主要实现监听连接信号,建立连接和接收数据。步骤如下:
建立监听套接字 --> 连接到客户端 --> 获得连接套接字 --> 接收数据
下面是服务器端源码:

#ifndef TCPSEVER_H
#define TCPSEVER_H#include <QObject>
#include <QHostAddress>
#include <QTcpServer>
#include <QTcpSocket>
#include <QDebug>class TCPSever : QObject
{Q_OBJECT
public:TCPSever();void InitServer();//初始化服务器
private:QTcpServer *mTcpServer;//服务器对象QTcpSocket *mTcpSocket;//客户端套接字QHostAddress mHostAddress;//本地IP地址};#endif // TCPSEVER_H
#include "tcpsever.h"TCPSever::TCPSever()
{InitServer();
}void TCPSever::InitServer()
{mTcpServer = new QTcpServer(this);//初始化监听套接字mTcpSocket = new QTcpSocket;//初始化连接套接字mHostAddress.setAddress("10.0.0.177");//设置监听网卡IPquint16 _port = 7777;//设置监听端口mTcpServer->listen(mHostAddress,_port);//监听指定网卡和端口qDebug()<<"Listen Interface ["<<mHostAddress.toString()<<"] And Port ["<<_port<<"] Successful!"<<endl;connect(mTcpServer,&QTcpServer::newConnection,this,[=]{mTcpSocket = mTcpServer->nextPendingConnection();//获取连接套接字qDebug()<<"Connect To Client Successful!"<<endl;connect(mTcpSocket,&QTcpSocket::readyRead,this,[=]{//读取消息QByteArray _data = mTcpSocket->readAll();qDebug()<<"TCP Receive Data : "<<QString::fromLatin1(_data)<<endl;});});}

结尾

以上就是QT中TCP通信模块的全部内容,然后上面的源码可以直接编,但是记得去PRO文件中加入network模块:)

http://www.yayakq.cn/news/225688/

相关文章:

  • 未成年做网站挂机赚一小时75元
  • 八年级微机网站怎么做买表的网站
  • 做网站的公司赚钱吗工程建设部网站
  • 上海好的高端网站建网站建设基本流程图片
  • 怎么区分营销型网站网站建设的小故事
  • 虚拟空间做网站用asp.net做的网站有哪些
  • 营销网站功能影视宣传制作公司
  • 图书馆网站建设策划html友情链接
  • 中国石油大学网站建设wordpress演示插件
  • wordpress制作网站教程视频设计与绘制一个网站首页
  • 红河网站制作wordpress copyright
  • 网站建设培训四川华为荣耀官网网站
  • 网站推广软件费用是多少广州海珠区房价
  • 网站建设一定要备案吗上海城乡建设网站
  • 购物网站开发教程 视频国内跨境电商平台排行榜前十名
  • 阳朔到桂林泉州seo计费管理
  • 发布网站搭建教程高密网站制作
  • 中小企业品牌网站建设天津建设工程评标专家网站
  • 果女做拍的视频网站助孕网站优化推广
  • 南昌免费网站建站模板建筑设计公司起名大全
  • 淘客网站难做吗木材板材网站制作方案
  • edo网站建设网站开发诺亚科技
  • 做网站公司上什么平台凡科网站做商城
  • 提供衡水网站建设福建已经宣布封城的城市
  • 网站建设的内容要怎么写小程序是做什么的
  • 宜昌网站建设哪个公司好装修设计软件免费下载
  • 网站开发交流模板网站自助建站
  • 课程网站建设ppt模板下载用软件做模板下载网站
  • 做网站用到什么技术wordpress修改固定链接重定向
  • 番禺哪里有做网站的公司想学设计怎么入门在家自己学