小编Kar*_*ary的帖子

如何在 QT 中接收正确的 UDP 数据包?

我正在尝试编写一个 QT 程序来接收 UDP 数据包。我正在尝试从 Packet Sender 软件接收这是我的代码

    socket = new QUdpSocket(this);
    bool result =  socket->bind(QHostAddress("150.100.50.88"),45454);
    qDebug() << result;
    if(result)
    {
        qDebug << "PASS";
    }
    else
    {
        qDebug << "FAIL";
    }
    processPendingDatagrams();
    connect(socket, SIGNAL(readyRead()), this, SLOT(processPendingDatagrams()),Qt::QueuedConnection);


    void UDP::processPendingDatagrams() 
    {
        QHostAddress sender;
        u_int16_t port;
        while (socket->hasPendingDatagrams())
        {
            QByteArray datagram;
            datagram.resize(socket->pendingDatagramSize());
            socket->readDatagram(datagram.data(),datagram.size(),&sender,&port);
           qDebug() <<"Message From :: " << sender.toString();
           qDebug() <<"Port From :: "<< port;
           qDebug() <<"Message :: " << datagram;    
       } //! [2] 
   }
Run Code Online (Sandbox Code Playgroud)

UDP.h:

 class UDP : public QObject 
 { …
Run Code Online (Sandbox Code Playgroud)

c++ sockets qt udp

5
推荐指数
1
解决办法
6501
查看次数

标签 统计

c++ ×1

qt ×1

sockets ×1

udp ×1