Qt中,QUdpSocket类对象的readyRead信号不响应问题
问题说明
QUdpSocket类对象的readyRead是用来在发送消息后,通过这个信号来通知接受函数去读内存中接受的数据,但是在使用过程中遇到了readyRead信号不响应问题。
通过网上查找发现有人指出:
调用 writeDatagram() 发送数据包时,程序不知道有没有发完,会一直指向这里,相当于阻塞了。
因此在发送了消息之后,需要通过调用waitForReadyRead函数,告诉程序发送完成。然后程序才会响应后续,发送信号!
示例:
//发送
udpSocket->writeDatagram((char *)sendBuff, 2, QHostAddress::Broadcast, CONNECT_PORT_SEND);
udpSocket->waitForReadyRead(100);//结束发送,等待读取
参考文章:
原文链接:https://blog.csdn.net/qq_45304158/article/details/108625740