2011-06-14 78 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),否则你的连接请求永不超时。

相关问题