如何重新连接服务器

时间:2011-06-14 09:31:44

标签: qt

我正在使用QTcpsocket和QtcpServer来实现客户端服务器resp。我的客户端程序等待直到服务器启动并连接它。我想重新连接服务器,当服务器连接后关闭,但上面的代码给出了奇怪的行为,它创建了很多服务器实例,我的程序挂起了。请给出建议来实现我的目标,并请解释什么是下面代码中的问题,它是一个插槽,在客户端程序中,用disconnected()信号连接。

 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);
  }

}

1 个答案:

答案 0 :(得分:2)

而不是sleep(6)尝试使用tcpSocket->waitForConnected(6000),否则您的连接请求将永远不会超时。