Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QLocalSocket::disconnectFromServer()在Windows的Qt5中重新输入事件循环之前不会断开套接字_C++_Windows_Qt_Qt5_Qlocalsocket - Fatal编程技术网

C++ QLocalSocket::disconnectFromServer()在Windows的Qt5中重新输入事件循环之前不会断开套接字

C++ QLocalSocket::disconnectFromServer()在Windows的Qt5中重新输入事件循环之前不会断开套接字,c++,windows,qt,qt5,qlocalsocket,C++,Windows,Qt,Qt5,Qlocalsocket,我为Qt5编译了一个程序,现在它有了不同的运行时行为 在Qt5中,套接字在重新进入事件循环之前不会断开连接,即使我使用waitForDisconnected显式地等待 例如,此代码: socket.disconnectFromServer(); qDebug("Started waitForDisconnected..."); socket.waitForDisconnected(); qDebug("Finished waitForDisconnected."); qDebug("Starte

我为Qt5编译了一个程序,现在它有了不同的运行时行为

在Qt5中,套接字在重新进入事件循环之前不会断开连接,即使我使用waitForDisconnected显式地等待

例如,此代码:

socket.disconnectFromServer();
qDebug("Started waitForDisconnected...");
socket.waitForDisconnected();
qDebug("Finished waitForDisconnected.");
qDebug("Started Sleep for 10 seconds...");
Sleep(10*1000);
qDebug("Finished Sleep.");
qDebug("Started QEventLoop...");
QEventLoop().exec();
qDebug("Finished QEventLoop.");
将给出以下输出:

Started waitForDisconnected...
QLocalSocket::waitForDisconnected() is not allowed in UnconnectedState
Finished waitForDisconnected.
Started Sleep for 10 seconds...
Finished Sleep.
Started QEventLoop...
但是在我开始QEventLoop之前,套接字本身不会被删除。。。消息-我知道这一点,因为我从另一个等待套接字从另一端断开连接的应用程序监视它

当使用Qt4编译时,相同的代码会正常工作,套接字会在waitForDisconnected返回之前断开连接。在Qt5上,waitForDisconnected返回声明套接字已断开连接,而实际上它尚未断开连接


我的Qt版本是5.1.1。

实际上,waitForDisconnected正在发出错误信号,如QLocalSocket::waitForDisconnected中所示,在UnconnectedState@ratchetfreak但这个错误是因为它认为它已经断开了,这就是为什么它说在未连接状态下不允许,而实际上它仍然是连接的,另一侧未收到断开的信号。正如我所说,这不会发生在Qt4中。也许你应该在Qt的Bug跟踪器中报告这一点:如果你已经这样做了,也许你可以在这里分享链接作为评论?