QT网络开发---TCP通信

1.socket通信
Qt也提供基于TCP/IP的套接字(socket)编程,使用时需要添加网络模块和头文件。
1.在项目文件中添加

QT += network

2.代码中添加头文件

#include <QtNetwork>   

2.套接字分类

TCP流式套接字 --------------- QTcpSocket
UDP数据报套接字 ------------- QUdpSocket

应用层的网络操作类

QNetworkRequest     QNetworkReply    QNetworkAccessManager....

3.TCP网络通信的实现
(1)服务器

1.创建QTcpServer对象
    mServer = new QTcpServer;
2.调用QTcpServer对象的方法进行监听
    mServer->listen(QHostAddress::Any/*IP地址*/,端口号);
    //当有客户端连上来时,会发送信号(newConnection),连接该信号和槽函数
3.在槽函数中获取和客户端通信的套接字(QTcpSocket对象)
        mSocket = mServer->nextPendingConnection();
4.和客户端通信
发送:
    通过QTcpSocket对象的成员函数write发送数据
接收:
    收到数据触发信号(readyRead),在连接的槽函数中读取收到的数据(read/readAll)

(2)客户端

1.创建QTcpSocket对象
    mSocket = new QTcpSocket;
2.调用QTcpSocket对象的方法(connectToHost)连接服务器
    mSocket->connectToHost(ip,port);
    //连接成功发送connected信号
3.连接成功和服务器通信
发送:
    通过QTcpSocket对象的成员函数write发送数据
接收:
    收到数据触发信号(readyRead),在连接的槽函数中读取收到的数据(read/readAll)

运行效果:
在这里插入图片描述

TcpServer 点击启动
在这里插入图片描述

TcpClient 点击连接
在这里插入图片描述
输入内容,互相发送消息
在这里插入图片描述

编译环境windows10,+QT5.12.0在这里插入图片描述

具体代码:https://download.csdn.net/download/weixin_43793181/13114839

猜你喜欢

转载自blog.csdn.net/weixin_43793181/article/details/109701438