小编zuw*_*gap的帖子

如何在QT中发送和接收UDP数据包

我正在QT中编写一个小应用程序,它通过本地网络发送UDP数据包广播,并等待来自网络上一个或多个设备的UDP响应数据包.

创建套接字并发送广播包.

udpSocketSend = new QUdpSocket(this);
udpSocketGet  = new QUdpSocket(this);
bcast = new QHostAddress("192.168.1.255");

udpSocketSend->connectToHost(*bcast,65001,QIODevice::ReadWrite);
udpSocketGet->bind(udpSocketSend->localPort());
connect(udpSocketGet,SIGNAL(readyRead()),this,SLOT(readPendingDatagrams()));

QByteArray *datagram = makeNewDatagram(); // data from external function
udpSocketSend->write(*datagram);
Run Code Online (Sandbox Code Playgroud)

应用程序正确发送数据包,响应数据包到达,但从readPendingDatagrams()不调用该函数.我已验证使用Wireshark发送和接收数据包,并且应用程序正在使用Process Explorer监听wireshark中指示的端口.

networking qt udp

9
推荐指数
2
解决办法
3万
查看次数

标签 统计

networking ×1

qt ×1

udp ×1