目录
一、为什么要写这篇文章,因为我就是要另辟蹊径,当然也是汲取了网上大咖们的经验,尽量简洁的进行总结
二、关于接收数据需的条件,需要绑定本地IP地址和端口号,可解释为此时为服务器模式,远端为客户端模式,实现的代码非常简单几行代码可以搞定
三、数据的发送,就比较简单了,前提是需要知道对方的IP地址,端口号
一、为什么要写这篇文章,因为我就是要另辟蹊径,当然也是汲取了网上大咖们的经验,尽量简洁的进行总结
1、多线程使用;
2、不使用信号槽接收;
3、同时实现发送接收功能;
二、关于接收数据需的条件,需要绑定本地IP地址和端口号,可解释为此时为服务器模式,远端为客户端模式,实现的代码非常简单几行代码可以搞定
QUdpSocket udpServer; //定义UDP对象
QByteArray recvbuff; //接收数据缓存
udpServer.bind(QHostAddress::AnyIPv4,LPORT); //IP和端口绑定
线程数据接收代码,可以在while()内实现文章来源:https://www.toymoban.com/news/detail-506901.html
udpServer.waitForReadyRead(1000); //等待接收数据,没有数据情况下会等待到设定时间,有数据会返回true,并且不需要等待到设定时间
if(!udpServer.hasPendingDatagrams()) //判断是否有数据
continue;
QByteArray temBuff; //临时内存
temBuff.resize(int(udpServer.pendingDatagramSize())); //申请临时内存大小
udpServer.readDatagram(temBuff.data(), temBuff.size(),&RIP,&RPORT); //将数据保存至临时内存
recvbuff.append(temBuff); //将临时内存添加到接收数据缓存区等待解析处理
三、数据的发送,就比较简单了,前提是需要知道对方的IP地址,端口号
比如发送一段帧数据如下,具体数据自己定义文章来源地址https://www.toymoban.com/news/detail-506901.html
QByteArray array;
array.append(0x55);
array.append(0xAA);
array.append(0x07);
array.append(crcData(array));
udpServer.writeDatagram(array, RIP, RPORT);
到了这里,关于Qt实现UDP发送与接收操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!