• 2529阅读
  • 4回复

[提问]QUdpSocket数据接收问题? [复制链接]

上一主题 下一主题
离线flywindytc
 

只看楼主 倒序阅读 楼主  发表于: 2020-10-29
本人写了一个接收线程类(继承自QThread)设为ThreadA,用于接收网络中的数据,在该ThreadA类的run函数中进行了如下重载:
1、一是创建QUdp套接字
2、进入循环体,循环体的主要工作是:
{
    进入子循环判断套接字的waitforreadyread是否满足,不满足主循环体continue
    满足,则从套接字上接收数据
}

数据发送方,是硬中断驱动的,每秒20Hz;
实际运行中,会存在数据到了接收的计算机,但是上面ThreadA却无法收到,然后集中收到几帧的情况
请高手帮忙分析下,为什么数据到了计算机,应用程却无法响应;我试过不用waitforreadyread,直接循环不停主动的去读套接字中的数据,
那样好像没有问题了。我就是想问下上面的模式是为什么?或者推而广之,什么情况会出现数据到了计算机,但是应用程序却无法响应的情况
(发送方是没有问题的)
离线liulin188

只看该作者 1楼 发表于: 2020-10-29
udp不要用waitforreadyread,直接挂readyRead信号槽
https://wiki.qt.io/Qt_5.12_Release
https://wiki.qt.io/New_Features_in_Qt_5.12
https://wiki.qt.io/Qt_5.12.0_Known_Issues
https://www.qt.io/blog/qt-5.13.2-released
https://www.qt.io/blog/qt-creator-4.10.2-released
https://wiki.qt.io/Qt_5.12_Tools_and_Versions
离线kaon

只看该作者 2楼 发表于: 2020-10-30
waitForReadyRead
Note: This function may fail randomly on Windows. Consider using the event loop and the readyRead() signal if your software will run on Windows.
离线flywindytc

只看该作者 3楼 发表于: 2020-11-26
回 liulin188 的帖子
liulin188:udp不要用waitforreadyread,直接挂readyRead信号槽 (2020-10-29 22:07) 

谢谢
离线flywindytc

只看该作者 4楼 发表于: 2020-11-26
回 kaon 的帖子
kaon:waitForReadyRead
Note: This function may fail randomly on Windows. Consider using the event loop and the readyRead() signal if your software will run on Windows. (2020-10-30 10:13) 

谢谢
快速回复
限100 字节
 
上一个 下一个