Qt中的网络编程(Tcp和Udp)运用详解以及简单示范案例

概述

Tcp和Udp是我们学习网络编程中经常接触到的两个通讯协议,在Qt也被Qt封装成了自己的库供我们调用,对于需要进行网络交互的项目中无疑是很重要的,希望这篇文章可以帮助到大家。

考虑到可能有点小伙伴可能不知道Tcp和Udp的一些概念,这里我放个传送门,大家可以去了解一下。

TCP和UDP的服务器和客户端通信代码实现,非常简单易懂!(附源码,小白必看!)_tcp或者udp代码实现客户端与服务器之间通讯-CSDN博客

1. 模块引入

开始之前我们需要在Qt的pro文件中增加

cpp 复制代码
QT += network  

2. Tcp编程

2.1 头文件
cpp 复制代码
#include <QTcpServer>  //TCP服务端使用
#include <QTcpSocket>  //TCP服务器和客户端都使用
2.2 编程流程

服务器

cs 复制代码
实例化QTcpServer对象----------------------------->socket
进入监听状态--listen(QTcpServer)  //不需要再绑定了----------->bind + listen
监测客户端连接--newConnection信号(QTcpServer)---------------->有新连接过来,server就能收到newConnection信号
QTcpSocket *client<--获得连接--nextPendingConnection(QTcpServer)------------------>accept
连接对端接收信号--readyRead(QTcpSocket)---------------------->如果对端有数据发送,server就能收到readyRead信号
读取客户端消息--readAll(QTcpSocket)-------------------------->recv:读取数据
发送数据--write(QTcpSocket)--->send:发数据
关闭连接--disconnectFromHost()------------------->close

客户端

cpp 复制代码
实例化QTcpSocket对象
连接服务器--connectToHost--->接着使用waitForConnected来判断是否连接成功
连接对端接收信号--readyRead
发送数据--write()
关闭连接--disconnectFromHost()

2.3 演示效果

3. Udp编程

3.1 头文件

cpp 复制代码
#include <QUdpSocket>

3.2 编程流程

cpp 复制代码
实例化QUdpSocket对象----------------------------------->socket
绑定地址、端口--bind(QHostAddress::LocalHost, 8888)---->bind
收发报文--readDatagram、writeDatagram------------------>recvfrom/sendto

发送端

接收端

2.3 演示效果

基本演示案例就到这里,希望可以帮助到大家~

相关推荐
ACP广源盛1392462567318 分钟前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
Empty-Filled1 小时前
AI生成测试用例功能怎么测:一个完整实战案例
网络·人工智能·测试用例
码云数智-大飞2 小时前
本地部署大模型:隐私安全与多元优势一站式解读
运维·网络·人工智能
jinanwuhuaguo2 小时前
(第二十九篇)OpenClaw 实时与具身的跃迁——从异步孤岛到数字世界的“原住民”
前端·网络·人工智能·重构·openclaw
等风来不如迎风去3 小时前
【win11】最佳性能:fix 没有壁纸,一直黑屏
网络·人工智能
Harvy_没救了3 小时前
【网络部署】 Win11 + VMware CentOS8 + Nginx 文件共享服务 Wiki
运维·网络·nginx
汤愈韬3 小时前
NAT Server 与目的Nat
网络·网络协议·网络安全·security
2401_873479404 小时前
断网时如何实时判断IP归属?嵌入本地离线库,保障风控不中断
运维·服务器·网络
Morwit4 小时前
QML组件之间的通信方案(暴露子组件)
c++·qt·职场和发展
7ACE5 小时前
Wireshark TS | TLP 超时时间
网络·网络协议·tcp/ip·wireshark·tcpdump