QTcpServer監(jiān)聽客戶端一段時(shí)間后,client斷開再連接,接收不到信號(hào)問題
				
					![]() 
					
					
					
						發(fā)表于2019-05-10
						回復(fù):0
						查看:8916  |  
					
				 
				
					QTcpServer 監(jiān)聽?zhēng)讉€(gè)客戶端一段時(shí)間后,client退出,并觸發(fā)disconnected信號(hào),但是時(shí)間長(zhǎng),就會(huì)出現(xiàn)新的client 顯示連接上,但是Server沒有接收到信號(hào),QTimer也被堵塞,這種情況如何避免? 只能把監(jiān)聽的client分線程處理?
下面是接入Client并初始化。
<pre class='brush: cpp'>void QGHTcpServer::incomingConnection(int socketDescriptor)
{
    QTcpSocket *pSock = new QTcpSocket(this);
    if (!pSock->setSocketDescriptor(socketDescriptor)) {
        emit evt_SocketError(pSock,pSock->error());
        return;
    }else{
        connect(pSock, SIGNAL(readyRead()),this, SLOT(new_data_recieved()));
        connect(pSock, SIGNAL(disconnected()),this,SLOT(client_closed()));
        connect(pSock, SIGNAL(error(QAbstractSocket::SocketError)),this, SLOT(displayError(QAbstractSocket::SocketError)));
        connect(pSock, SIGNAL(bytesWritten(qint64)), this, SLOT(some_data_sended(qint64)));
        m_clientList[pSock] = 0;
        emit evt_NewClientConnected(pSock);
    }
}</pre>					
					
											
					
									 
			
登錄 慧都網(wǎng)發(fā)表評(píng)論