QT UDP

本文介绍如何使用Qt进行UDP通信。包括发送端与接收端的实现,通过QUdpSocket发送与接收数据报,需在.pro文件中添加QT+=network。发送端可以广播或定向发送数据,接收端则监听指定端口并读取数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、UDP

对于UDP通信,我分为发送端可接收端。向指定ip的端口发送信息。

注意:在.pro文件中要添加QT += network,否则无法使用Qt的网络功能

发送端:

#include <QtNetWork>
QUdpSocket *sender;
sender = new QUdpSocket(this);
QByteArray datagram = "hello C++";
//UDP广播 writeDatagram(消息, 消息大小, 目标IP, 目标IP端口) 失败返回-1,成功返回消息长度
sender->writeDatagram(datagram.data(),datagram.size(),QHostAddress::Broadcast,port);
//向特定IP发送
QHostAddress serverAddress = QHostAddress("127.0.0.1");
sender->writeDatagram(datagram.data(), datagram.size(),serverAddress, port);


接收端:

xxx.h

#include <QtNetwork>
//信号槽
private slots:  
    void Rec(); 
private:
    QUdpSocket *receiver;

xxx.cpp

receiver = new QUdpSocket(this);
//bind(IP地址, 监听的端口)  成功返回true,失败返回false
receiver->bind(QHostAddress::LocalHost, port);
connect(receiver, SIGNAL(readyRead()),this, SLOT(Rec()));

void Rec()
 {
     while (receiver->hasPendingDatagrams()) 
     {
         QByteArray datagram;
         datagram.resize(receiver->pendingDatagramSize());
         receiver->readDatagram(datagram.data(), datagram.size());
         //datagram就是接受到的数据
     }
 }



                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值