как восстановить соединение с сервером - PullRequest
0 голосов
/ 14 июня 2011

Я использую QTcpsocket и QtcpServer для реализации клиентского сервера, соответственно. моя клиентская программа ожидает запуска сервера и подключается к нему Я хочу повторно подключиться к серверу, когда сервер выходит из строя после подключения, но приведенный выше код дает странное поведение, он создает много экземпляров сервера, и моя программа зависла. Пожалуйста, дайте предложение, чтобы выполнить мою цель, и, пожалуйста, объясните, что это такое. проблема в следующем коде, это слот, в клиентской программе, соединиться с сигналом 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 Ответ

2 голосов
/ 14 июня 2011

Intead из sleep(6) попробуйте использовать tcpSocket->waitForConnected(6000), иначе ваши запросы на подключение никогда не прекратятся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...