Я делаю простую программу клиент-сервер, используя QTcpServer, QTcpSocket без использования потока, в fedora. Я хочу сделать свое приложение независимым от последовательности того, что выполняется первым, клиента или сервера. Мое приложение работает хорошо, когда я сначала запускаю сервер, но у меня нет никакого способа заставить клиента ждать, пока сервер не запускается и не подключается с служить в качестве запуска сервера. Я использовал waitForConnection (), но это не помогает.
Пожалуйста, дайте несколько предложений.
TcpClient::TcpClient(QWidget *parent) : QMainWindow(parent),
ui(new Ui::TcpClient)
{
ui->setupUi(this);
tcpSocket= new QTcpSocket(this);
tcpSocket->connectToHost(QHostAddress::LocalHost,6178);
connect(tcpSocket, SIGNAL(connected()), this, SLOT(sendRequest()));
connect(tcpSocket, SIGNAL(disconnected()),this, SLOT(connectionClosedByServer()));
connect(tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)),this, SLOT(error()));
.
.
..
}
void TcpClient::error()
{
ui->lStatus->setText(tcpSocket->errorString());
closeConnection();
tcpSocket->connectToHost(QHostAddress::LocalHost,6178);
}