Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.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/jpa/2.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
Facebook QSSLSocket停止发送/接收数据的可能原因_Facebook_Qt_Tcp_Xmpp_Qsslsocket - Fatal编程技术网

Facebook QSSLSocket停止发送/接收数据的可能原因

Facebook QSSLSocket停止发送/接收数据的可能原因,facebook,qt,tcp,xmpp,qsslsocket,Facebook,Qt,Tcp,Xmpp,Qsslsocket,有谁能给我一个可能的原因,为什么我的QSSLSocket会停止发送和接收数据而不触发状态更改或断开连接的信号 我的应用程序启动一个线程,该线程连接到Facebooks XMPP服务器,进行身份验证,然后进入调用waitForReadyReady(10000)的while循环,如果返回true,它将读取数据。有时,一段时间后,对waitForReadyReady的调用将永远不会返回true,即使应该有一些内容要读取,并且如果我尝试在此时发送数据,服务器将不会收到任何内容 我正在向XMPP服务器发送

有谁能给我一个可能的原因,为什么我的QSSLSocket会停止发送和接收数据而不触发状态更改或断开连接的信号

我的应用程序启动一个线程,该线程连接到Facebooks XMPP服务器,进行身份验证,然后进入调用waitForReadyReady(10000)的while循环,如果返回true,它将读取数据。有时,一段时间后,对waitForReadyReady的调用将永远不会返回true,即使应该有一些内容要读取,并且如果我尝试在此时发送数据,服务器将不会收到任何内容

我正在向XMPP服务器发送ping,在没有收到ping的回复后,我可以检测何时发生这种情况,但在我弄清为什么客户端和服务器之间的通信有时会中断之前,ping实际上不可用作应用程序


有人能提供一些见解吗?

1。在调用waitForReadyRead()之前,套接字中的读取缓冲区是否为空?否则,您可能无法处理重要数据并永远等待新数据。2.ping真的被发送了吗?请与wireshark 3联系。在某一点之前,您是否看到服务器乒乓球?您确定服务器没有因为任何原因而自动断开连接吗?您可能需要设置自己的测试服务器进行调试。如果您还没有使用XMPP库,那么您也可以考虑使用XMPP库。我今天使用了wireshark,数据包不断进来,但waitForReadyReady()没有任何报告。测试服务器似乎是一个好主意-可能会对此进行研究。在调用waitForReadyRead()之前检查bytesAvailable>0,并且不等待是否有要读取的内容后,我发现问题今天仍然存在。此外,传出和传入的通信同时中断。我花了一天时间重新设计代码,以消除使用单独线程的情况,但问题仍然存在,我使用的是QXmpp,现在使用的是非阻塞方法,仍然没有数据突然出现或发送,但wireshark显示数据正在接收,没有信号被触发。有人吗?