QT 的UDP SOCKET编程

Qt - UDP网络编程 UDP(User Datagram Protocol,用户数据报协议)UDP是一个轻量级、不可靠、面向数据报的、无连接的协议,多用于可靠性要求不严格,不是非常重要的传输。QUdpSocket类继承自QAbstractSocket,用来发送和接收UDP数据报,”Socket”即套接字,套接字即IP地址+端口号。其中IP地址指定了网络中的一台主机,二端口号则指定了该主机上的一个网络程序,使用套接字即可实现网络上的两个应用程序之间的通信。 阅读详情

QT建立控制台项目,还是用最简单的c/s 模式.

client端:
UDPclient.h
 

#ifndef UDP_UDPclient_H
#define UDP_UDPclient_H

#include <QtNetwork/QUdpSocket>
#include <QHostAddress>
#include <QThread>

#pragma once
 
class UDPclient: public QObject
{
  Q_OBJECT 
public:
 void InitSocket();
private slots:
    void Recv();
};
#endif

UDPclient.cpp

 

#include "UDPclient.h"

QUdpSocket  *udpSocket;   //套接字对象
void UDPclient::InitSocket()
{
  udpSocket = new QUdpSocket(this);
  udpSocket->bind(QHostAddress::Any,2002);
  connect(udpSocket, SIGNAL(readyRead()),
   this, SLOT(Recv()));
}
void UDPclient::Recv()
{
  while (udpSocket->hasPendingDatagrams())
 {
        QByteArray datagram;
        datagram.resize(udpSocket->pendingDatagramSize());
        udpSocket->readDatagram(datagram.data(), datagram.size());                            
  for (int i = 0; i < datagram.size(); ++i)
  {
   printf( " %x",datagram.at(i));
  }
  printf("/n");
    }
}

函数解释:pendingDatagramSize  当有数据包读入时返回true.

         resize 为datageam设置大小

         pendingDatagramSize 返回udosocket第一个数据包的大小

         readDatagram 读数据包

 

server端,顺便学习写下个多进程QThread:

main.cpp

 

#include <QtGui/QApplication>
#include "UDP_QT.h"

int main(int argc, char *argv[])
{  
 UDP_QT Server;
 QCoreApplication a(argc, argv);
 Server.InitSocket();
 Server.start();//进程开始
    return a.exec();
}

UDP_QT.h
 

#ifndef UDP_QT_H
#define UDP_QT_H

#include <QtNetwork/QUdpSocket>
#include <QHostAddress>
#include <QThread>


#pragma once
 
class UDP_QT: public QThread
{

private:
    void Send();

public:
 void InitSocket();
 void run();
};
#endif

 

 

UDP_QT.cpp

 

#include "UDP_QT.h"
QUdpSocket  *udpSocket;   //套接字对象

char ToAddress[20]="10.144.123.237";

void UDP_QT::InitSocket()
{
 udpSocket = new QUdpSocket(this);
}
void UDP_QT::Send()
{
 char information[]="adg";

 while(1)
 {
  udpSocket->writeDatagram(information,QHostAddress(ToAddress),2002);
     printf("send datagram:");
   for (int i = 0; i < sizeof(information); ++i)
  {
   printf("%d",information[i]);
  }
  static int count=0;
  printf("/n%d",count++);
   sleep(1); //sleep函数要在进程下才能使用,它继承QThread
 }
}
void UDP_QT::run() //运行进程
{
  Send();
}


 以上仿照QT帮助写的.

Qt-udp通信 说明:UDP是面向无连接的,客户端并不与服务器不建立连接,直接向服务器发送数据,服务器端也不从客户端接收连接,只负责调用接收函数,等待客户端连接的到达。1)创建套接字;2)绑定套接字;3)接收或发送数据;4)关闭连接。1)创建套接字;2)接收或发送数据;3)关闭连接。 阅读详情

相关推荐

【Qt】Qt 网络编程——UDP单播通信

qt相关

gszhlw的博客 1713

Qt网络编程:QUdpSocket

告诉服务器侦听address和port 传入的连接。如果地址是 QHostAddress::Any,则服务器将侦听所有网络接口。将下一个待处理的连接作为已连接的 QTcpSocket 对象返回。如果没有待处理的连接,该函数会返回 nullptr。如果服务器正在侦听连接,则返回服务器的地址;设置接受的最大连接数量。停止接受新连接,但操作系统可能仍将它们保留在队列中。如果服务器正在侦听连接,则返回服务器的端口;返的接受的最大连接数量。服务器将不再侦听传入连接。服务器是否有正在连接着的连接。

hw5230的博客 727

【QT】数据广播(QUdpSocket类)

QT中的数据广播实现(QUdpSocket类)

计算机视觉爱好者 5026

Qt网络编程(2):QUdpSocket的基本使用

0.前言 本文主要讲解 Qt UDP相关接口的基本应用,一些实践相关的后面会单独写。 UDP(用户数据报协议 User Datagram Protocol)是一种轻量级,不可靠,面向数据报的无连接协议。 UDP 是一个非连接的协议,传输数据之前源端和终端不建立连接, 当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。 在发送端,UDP 传送数据的速度仅仅是受应用程序生成数据的速度、 计算机的能力和传输带宽的限制; 在接收端,UDP 把每个消息段放在队列中,应用程序每次从队列.

龚建波 3万+

【QT开发】UDP套接字QUdpSocket类详解及实战应用

QUdpSocket 是 Qt 提供的一个功能强大且灵活的 UDP 套接字类,通过本篇文章的学习,你应该对 QUdpSocket 有了全面的理解,能够在自己的项目中正确使用它。QUdpSocket 在用户界面中帮助你更好地实现无连接、快速数据传输的网络通信,实现实时和互动式的网络应用,有助于创建用户友好和高效的网络应用场景。

科技改变人类,技术成就未来 2369

TCP/UDP网络调试助手:C++/Qt源码详解与Socket编程实践

网络通信调试是Socket编程实践中绕不开的环节,TCP与UDP作为传输层两大核心协议,分别以可靠连接和高效无连接的特性支撑着各类应用。理解QTcpServer、QUdpSocket等Qt网络组件的信号槽机制,掌握bind、收发缓冲区及粘包处理等原理,是定位“连不上、收不到、数据乱”等问题的关键。一套带完整C++/Qt源码的TCP/UDP网络调试助手,既能可视化验证协议交互,又能作为工程参考模板,帮助开发者快速搭建测试工具,显著提升联调效率。无论是初学Socket编程,还是在工业上位机、局域网通信场景中排查

weixin_31155097的博客 329

QT 网络编程二(UDP版本)

QT的UdpSocket接收消息使用原则 第一步:new一个UdpSocket 第二步:调用UdpSocket的bind方法,同时指定端口号 第三步:使用connect将接收消息函数和UdpSocket对象做关联 第四步:在接受消息槽函数当中调用readDatagram接收消息   接收消息 #ifndef WIDGET_H #define WIDGET_H #include &lt;...

weixin_33686714的博客 410

CANOE仿真someip报文配置说明

利用canoe测试车辆控制器someip报文收发的步骤

AUTOSAR架构汽车软件开发 1万+

Qt Socket编程避坑指南:TCP粘包、UDP丢包与跨平台网络通信的那些坑

本文深入探讨了Qt Socket编程中的常见问题与解决方案,包括TCP粘包、UDP丢包及跨平台网络通信的陷阱。通过对比不同解决方案的优缺点,提供代码示例和实战建议,帮助开发者高效应对网络编程挑战,提升Qt应用的稳定性和性能。

weixin_30781107的博客 397

同花顺自动化交易避坑指南:pywinauto实战中验证码识别与界面弹窗处理

本文深入探讨同花顺自动化交易中的关键稳定性问题,重点解决验证码识别与弹窗处理两大难题。通过优化Tesseract OCR、整合打码平台API以及设计pywinauto弹窗监控体系,提供了一套完整的自动化交易解决方案,帮助交易者有效规避资金账户和持仓信息操作中的常见陷阱。

weixin_33734785的博客 486

crazyswarm无人机集群搭建笔记(一)资料索引

crazyswarm无人机搭建笔记:资料收集

Coco_range的博客 806

Qt中的网络编程

由于我没有系统的分享一些简单的计算机网络有关的,下面只是简单讲讲tcp/ip协议簇和udp 一、tcp/IP协议簇与udp 1、TCP/IP协议族 TCP/IP实际上是一个协同工作的通信家族,为网络通信提供通路。为方便讨论TCP/IP协议族,大体上分为三部分: ①、Internet协议(IP)。 ②、传输控制协议(TCP)和用户数据报协议(UDP)。 ③、处于TCP和UDP之上的一组应用协议。它们包括:Telnet,文件传送协议(FTP),域名服务协议...

qq_54395977的博客 6796

从零到一:鲲鹏920服务器上的DeepSeek模型部署全流程解析

本文详细解析了在华为鲲鹏920服务器上部署DeepSeek模型的全流程,包括环境准备、模型服务框架部署、性能优化及生产环境方案。通过ARM架构优化和量化技术,显著提升模型推理效率,适用于企业级AI应用场景,助力国产化技术落地。

weixin_29094775的博客 599

[Qt网络编程]之UDP通讯的简单编程实现

UDP数据报协议是一个面向无连接的传输层报文协议,它简单易用,不存在 TCP协议“粘包”的问题,在强调实时、主动推送的系统中,常常用 UDP协议来实现网络双方的通信。在 Qt 中,QUdpSocket 类提供了 UDP 数据报的通信支持,下面通过两个简单的例子介绍Qt下 UDP 协议的实现。

atomy_iiii的博客 2440

水文模型新手必看:用SWAT-CUP做参数率定,如何正确设置预热期、率定期和验证期?(附数据准备避坑指南)

本文详细介绍了使用SWAT-CUP进行水文模型参数率定的完整流程,重点解析了预热期、率定期和验证期的正确设置方法,并提供了数据准备的避坑指南。通过实操步骤和常见问题解决方案,帮助新手快速掌握SWAT-CUP参数率定的核心技巧,提升水文模型模拟精度。

weixin_26875109的博客 373

ADS仿真功率放大器实例学习笔记

ADS仿真功率放大器实例学习笔记

qq_36521926的博客 1万+

QT创建UDP Socket通信

UDP通信适用于可靠性不那么重要的场合,例如广播消息;为实现既可发送也可接收消息,需要定义两个端口。

m0_46006412的博客 876

【超简单】一文入门在Ubuntu系统使用GitHub

Github是基于git的代码仓库,对于开发项目的科研者或者工程师,代码仓库都是不可多得的版本控制与多端编程工具,今天这篇文章带你轻松Github入门,简单的项目本文的操作足矣。

a13337649640的博客 5236

socket通信(UDP、TCP)的Qt实现

socket通信Qt实现

confidence092的博客 5969

从 Token 到 Agent:一文串起 AI 大模型核心概念

摘要:本文系统解析了现代AI系统的八大核心概念:Token(语言处理的最小单位)、Context(AI的短期记忆)、Prompt(指令接口)、Tool(能力扩展器)、MCP(工具生态协议)、Agent(自主智能体)和AgentSkill(专业技能封装)。文章揭示了这些概念如何共同构成AI从基础语言理解到自主决策的技术脉络,重点阐述了Token对计算成本的影响、Prompt工程的重要性、Tool如何突破AI的能力边界,以及Agent如何通过"感知-规划-执行-反思"循环完成复杂任务。最后指

jundao1997的专栏 249

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Qt网络编程-简易版UDP单播通信入门Demo(4)

第一,绝对不意气用事; 第二,绝对不放过任何一个注释; 第三,绝对保证代码的简洁明了。🤘 为了便于学习,在这个Demo里会尽可能简单的实现UDP单播通信功能,尽可能少的引入其它功能,只保留了基本功能,所以可能会有一些bug。 QUdpSocket分别可以采用**传统UDP通信步骤**和**类TCP的UDP通信步骤**两种实现方式实现单播通信功能;

mahuifa的博客 1959

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

嵌入式学习之QT学习---9 QT网络编程之UDP通信

1、关于UDP的基础信息 UDP(user datagram protocol,用户数据报协议)是轻量的、不可靠的、面向数据报(datagram)、无连接的协议,它可以用于对可靠性要求不高的场合。与TCP通信不同,两个程序之间进行UDP通信无需预先建立持久的socket连接,UDP每次发送数据报都需要指定目标地址和端口。 UDP通信相对于TCP通信的实现来说就稍微容易一些了,因为UDP是不需要分客户端和服务器的。只需要用到一个类QUdpSocket。 UDP消息传送有单播、广播、组播三种模式。 单播(un

qq_42822743的博客 4446

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Qt网络编程-简易版UDP组播通信入门Demo(5)

第一,绝对不意气用事; 第二,绝对不放过任何一个注释; 第三,绝对保证代码的简洁明了。🤘 为了便于学习,在这个Demo里会尽可能简单的实现UDP组播通信功能,尽可能少的引入其它功能,只保留了基本功能,所以可能会有一些bug。 实现功能: 在同一系统下,同一时间可打开多个UDP组播窗口,绑定同一个端口号进行通信; 数据接收功能; 数据发送功能。

mahuifa的博客 6462

Qt之UDP通信

UDP(User Datagram Protocol 即用户数据报协议)是一个轻量级的,不可靠的,面向数据报的无连接协议。由于 UDP 的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用 UDP 较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。UDP 通信示意图如下:UDP 消息传送有三种模式,分别是单播、广播和组播三种模式。①单播(unicast)

风间琉璃的博客 3万+
上一篇: Qt 隐藏鼠标
下一篇: qt中文编码
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值