想判断下客户端是否和服务器正常连接,使用waitForConnected判断是否连接超时,但是前面的 ui->textEdit_Recv->setText("正在连接")代码要等到 if(!socket->waitForConnected(3000))代码判断完成后才执行,这是为什么?
void MainWindow::on_pushButton_connect_clicked()
{
if((ui->pushButton_connect->text() == tr("连接")))
{
ui->textEdit_Recv->setText("正在连接");
QString IP;
int port;
//获取IP地址
IP=ui->lineEdit_IP->text();
//获取端口号
port=ui->lineEdit_Port->text().toInt();
//断开已有的连接
socket->abort();
//连接服务器
socket->connectToHost(IP,port);
//等待连接成功
if(!socket->waitForConnected(3000))
{
qDebug() << "Connection failed!";
return;
}
qDebug() << "Connect successfully!";
//发送按键使能
ui->pushButton_send->setEnabled(true);
//修改按键文字
ui->pushButton_connect->setText("断开连接");
}
else
{
//断开连接
socket->disconnectFromHost();
//修改按键文字
ui->pushButton_connect->setText("连接");
ui->pushButton_send->setEnabled(false);
}
}