QTcpServer監聽客戶端一段時間后,client斷開再連接,接收不到信號問題
發表于2019-05-10
回復:0
查看:8766 |
QTcpServer 監聽幾個客戶端一段時間后,client退出,并觸發disconnected信號,但是時間長,就會出現新的client 顯示連接上,但是Server沒有接收到信號,QTimer也被堵塞,這種情況如何避免? 只能把監聽的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>
登錄 慧都網發表評論