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

概述

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

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

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

1. 模块引入

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

QT += network  

2. Tcp编程

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

服务器

实例化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

客户端

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

2.3 演示效果

3. Udp编程

3.1 头文件

#include <QUdpSocket>

3.2 编程流程

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

发送端

接收端

2.3 演示效果

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/488000.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Django学习笔记-HTML实现服务器图片的下载

1.index编写代码,跳转下载页面 2.创建download界面 3.编写download路由 4.创建download函数 1).如果请求的方法是GET&#xff0c;imglist变量存储从models.imgModel模型中获取的所有对象,创建字典ctx,使用render函数来渲染download.htm 2).如果请求的方法是POST,获取要下载的文…

Java 基于微信小程序的农产品自主供销小程序

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

123 Linux C++ 系统编程2 Linux 上安装卸载程序三种方法,linux 下解压缩命令 tar介绍。kill命令,top命令,umask 命令

一 通过命令和网络直接安装 sudo apt-get update sudo apt-get update 的工作就是将自己本地 ubutun的软件列表和 aliyun 的软件列表对比&#xff0c;如不一样&#xff0c;则更新。 sudo apt-get install 软件名 真正的安装 那么这里就有一个问题了&#xff0c; 怎么从aliy…

C/C++内存管理学习【new】

文章目录 一、C/C内存分布二、C语言中动态内存管理方式&#xff1a;malloc/calloc/realloc/free三、C内存管理方式3.1 new/delete操作内置类型3.2 new和delete操作自定义类型四、operator new与operator delete函数五、new和delete的实现原理5.1 内置类型 六、定位new表达式(pl…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的无人机目标检测系统(Python+PySide6界面+训练代码)

摘要&#xff1a;本文详细介绍了一种利用深度学习技术的无人机目标检测系统&#xff0c;该系统基于前沿的YOLOv8算法&#xff0c;并与YOLOv7、YOLOv6、YOLOv5等先前版本进行了性能对比。本系统能够在不同媒介如单一图像、视频文件、实时视频流及批量处理文件中准确地检测和识别…

Redis信创平替之TongRDS(东方通),麒麟系统安装步骤

我的系统: 银河麒麟桌面系统V10(SP1)兆芯版 1.先进入东方通申请使用 2.客服会发送一个TongRDS包与center.lic给你(我这里只拿到.tar.gz文件,没有网上的什么安装版) 3.上传全部文件到目录中 4.服务节点安装,并启动 tar -zxvf TongRDS-2.2.1.2_P3.Node.tar.gz cd pmemdb/bin/…

仗剑天涯路 侠气传千古《有翡》湖北热血开播

由吴锦源执导&#xff0c;赵丽颖、王一博领衔主演&#xff0c;张慧雯、陈若轩、孙坚、周洁琼、张昕宇、冷纪元主演的古装武侠剧《有翡》&#xff0c;将于2月25日晚19:30登陆湖北卫视长江剧场。该剧改编自Priest小说《有匪》&#xff0c;讲述了南北朝年间&#xff0c;各方势力盘…

osg qt5.15 osg3.6.3 osgEarth3.1 编译爬山

Demo演示&#xff1a;Qt5.15.2OSG3.6.3OsgEarth3.1的QtCreator下的msvc2019x64版本 osgQt编译 步骤一&#xff1a;下载解压 步骤二&#xff1a;CMake配置 步骤三&#xff1a;CMake配置添加osg环境 步骤四&#xff1a;CMake配置添加Qt环境 步骤五&#xff1a;CMake修改CMakeLis…

v-rep插件

v-rep官网插件汉化教程 官网教程 插件是什么 插件本质上就是遵循一定规范的API编写出来的程序&#xff0c;在v-rep中最终需要编译为动态库。 linux下是libsimXXXX.so&#xff1b; 其中XXXX是插件的名称。 请至少使用4个字符&#xff0c;并且不要使用下划线&#xff0c;因为…

Vue学习之计算属性

模板中的表达式虽然方便&#xff0c;但也只能用来做简单的操作。如果在模板中写太多逻辑&#xff0c;会让模板变得臃肿&#xff0c;难以维护。比如说&#xff0c;我们有这样一个包含嵌套数组的对象&#xff1a; const author reactive({name: John Doe,books: [Vue 2 - Advan…

“IT行业职业发展的黄金之路:哪些证书能为你增光添彩?“

文章目录 每日一句正能量前言1、浙大计算机程序设计能力考试证书&#xff08;PAT&#xff09;2、全国计算机等级考试证书(NCRE)3、计算机技术与软件专业资格考试证书&#xff08;软考&#xff09;4、通信专业技术人员职业水平证书5、全国计算机应用水平考试证书&#xff08;NIT…

vivado VHDL Support

介绍 本章介绍AMD Vivado™合成和 注意支持的任何例外情况。VHDL紧凑地描述了复杂的逻辑&#xff0c;并允许您&#xff1a; •描述系统的结构&#xff1a;如何将系统分解为子系统&#xff0c;以及如何这些子系统是相互连接的。 •使用熟悉的语言形式指定系统的功能。 •在…