美文网首页物联网应用开发
Qt 的udpSocket通信及相关

Qt 的udpSocket通信及相关

作者: Cedric_h | 来源:发表于2019-07-23 06:49 被阅读0次

原文:https://blog.csdn.net/uyy203/article/details/51047095

定义

udpSocket = new QUdpSocket(this); 
QByteArray datagram = "http://blog.csdn.net/uyy203"; 
udpSocket->writeDatagram(datagram.data(), datagram.size(), QHostAddress::Broadcast, 8686); 
udpSocket->bind(QHostAddress("192.168.191.10"), 8686); 

UDP客户端广播

QUdpSocket *udpsocket1 = new QUdpSocket(this);
QByteArray datagram = "http://blog.csdn.net/uyy203"; udpsocket1->writeDatagram(datagram.data(),datagram.size(), QHostAddress::Broadcast,ui->spinBox->text().toInt());

UDP客户端发送到指定IP

QUdpSocket *udpsocket1 = new QUdpSocket(this);
QByteArray datagram = "http://blog.csdn.net/uyy203"; udpsocket1->writeDatagram(datagram.data(),datagram.size(), QHostAddress("192.168.191.10"),ui->spinBox->text().toInt());

收数据

connect(udpsocket, SIGNAL(readyRead()), this, SLOT(readPendingDatagrams())); 
while (udpsocket->hasPendingDatagrams()) 
{ 
QByteArray datagram; 
datagram.resize(udpsocket->pendingDatagramSize()); 
QHostAddress sender; 
quint16 senderPort; 
udpsocket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort); 
qDebug()<<datagram.data()<<datagram.size()<<senderPort<<sender.toString(); //processTheDatagram(datagram);
}

获取本地IP

QString getLocalIP(){
 
 
    QList<QHostAddress> list = QNetworkInterface::allAddresses();
        foreach (QHostAddress address, list)
        {
           if(address.protocol() == QAbstractSocket::IPv4Protocol)
               return address.toString();
           }
        return  "";
}

本地IP和端口绑定

bool Connect(QString IP,QString port)
{
    udpReceiverSocket->close();
    udpSenderSocket->close();
    bindReceiverFlag=bindSenderFlag=false;
 
 
    bindReceiverFlag=udpReceiverSocket->bind(QHostAddress(IP),port.toInt());
    bindSenderFlag=udpSenderSocket->bind(port.toInt());
 
 
 
 
    if(bindReceiverFlag&&bindSenderFlag)
        return true;
    else
        return false;
 
 
}

接收数据,获取数据长度,发送方IP,发送方端口

udpReceiverSocket->readDatagram(datagram.data(), datagram.size(),&senderIP,&senderPort);

相关文章

  • Qt 的udpSocket通信及相关

    原文:https://blog.csdn.net/uyy203/article/details/51047095 ...

  • Qt串口通信

    1. Qt串口通信类QSerialPort 在Qt5的的更新中,新增了串口通信的相关接口类QSerialPort,...

  • Qt及Qt Quick开发实战精解

    Qt及Qt Quick开发实战精解主要讲解了5个Qt综合应用程序的开发过程和Qt Quick的相关内容。《Qt及Q...

  • Qt及Qt Quick开发实战精解

    Qt及Qt Quick开发实战精解主要讲解了5个Qt综合应用程序的开发过程和Qt Quick的相关内容。《Qt及Q...

  • SharedWorker使用

    SharedWorker 最近公司需要在Qt内的各个iframe进行通信,但考虑到Qt的webChanel通信性能...

  • QTcpSocket

    注意点 QTcpSocket是Qt框架中的网络通信类,它使用QSocketNotifier实现异步通信。在Qt中,...

  • QT udp通信--Apple的学习笔记

    一,前言 之前做的都是QT的TCP通信,从来没做过QT的udp通信,所以我从自己的小小代码库中找不到udp通信的最...

  • 关于socket连接中的错误:NSLocalizedDescri

    解决办法 进入后台时将udpsocket关闭 再次进入前台时,打开udpsocket

  • QT5串口通信(Hex格式传输)

    参考博客: 博客园-菜头大大:QT串口通信 CSDN-宗师之路:QT实现串口通信(附源码下载) CSDN-xz-c...

  • 《Qt5开发及实例》

    《Qt5开发及实例》Qt是诺基亚公司的C++可视化开发平台,目前最新版本为Qt 5。《Qt5开发及实例》以Qt 5...

网友评论

    本文标题:Qt 的udpSocket通信及相关

    本文链接:https://www.haomeiwen.com/subject/wljnlctx.html