2011-06-14 84 views
0

我正在使用QTcpsocket和QtcpServer來實現客戶端服務器響應。我的客戶端程序會等待服務器啓動並連接它。我想重新連接服務器,當服務器連接後關閉,但上面的代碼給出了奇怪的行爲,它創造了很多服務器實例,並且我的程序被掛起了。請給出建議來實現我的目標,並請解釋什麼是在下面的代碼中,它是一個插槽,在客戶端程序中,與disconnect()信號連接。如何重新連接服務器

void TcpClient::connectionClosedByServer() 
{ 
    ui->lStatus->setText(tr("Error: Connection closed by server")); 
    closeConnection(); 
    while(tcpSocket->state()!=QAbstractSocket::ConnectedState) 
    { 
    tcpSocket->abort(); 
    tcpSocket->connectToHost(QHostAddress::LocalHost,6015); 
    sleep(6); 
    } 

} 

回答

2

sleep(6)的這一翻譯嘗試使用tcpSocket->waitForConnected(6000),否則你的連接請求永不超時。

相關問題