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
还没有评论,来说两句吧...