Qt5开发udp 客户端

1:在 .por文件中加入 

QT  +=network

2:添加库文件

#include <QUdpSocket>

一、单播

1、声明udp对象

QUdpSocket* udpClient;

2、new出对象

udpClient = new QUdpSocket(this);

3、分配本地地址(如果不分配,使用系统自动分配的),设置接收槽函数

udpClient.bind("192.168.1.1”,8080);

QObject::connect(this->udpClient,SIGNAL(readyRead()),this,SLOT(rcvData()));

4、接收函数

void Udp::rcvData()

{

  if(this->udpClient->pendingDatagramSize() == 0)

    return;

  QByteArray ba;

  ba.resize(udpClient->pendingDatagramSize());

  QHostAddress tempHost("");

  quint16 port = 0;

  this->udpClient->readDatagram(ba.data(),udpClient->pendingDatagramSize(),&tempHost,&port);

}

5、发送

void Udp::on_pushButton_3_clicked(){

  if(j == this->udpClient->writeDatagram(tempChar,j,ipAddress,port))  {

    qDebuf()<<"发送成功"

  }

}

6、关闭

udpClient.close();

 

ps:1、udp套接字bind成功之后,状态是BoundState,close之后是UnconnectedState;

   2、bind是将一个ip和地址绑定,并使socket与这两个绑定在一起,通常是udp使用此函数;connectToHost是套接字连接至主机ip和端口,通常是tcp客户端连接至服务器使用此函数;

   3、每当udp的readyRead信号发出来后,一定要使用接收函数把数据接收了,否则下次来数据的时候不会发出此信号。

参考1:https://blog.youkuaiyun.com/cutter_point/article/details/43973269?locationNum=10(【Qt5开发及实例】30、实现客户端的编程,UDP协议)

参考2:https://blog.youkuaiyun.com/nnxy409/article/details/54745103(《UDP客户端编程总结》)

参考3:https://www.cnblogs.com/judes/p/6902949.htmlQt开发UDP

参考4:https://wuyuans.com/2013/03/qt-socketQt Socket简单通信

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值