在使用Tcp编程的时候,我发现了一个问题,我先开启了一个服务器,但是没有启动监听,然后开启了一个客户端,指定连接的服务器的IP和端口,然后我直接就点击连接服务器此时客户端执行的代码是
void MainWindow::on_pushButton_clicked()
{
username=ui->lineEdit_2->text();
QString ip=ui->lineEdit_3->text();
unsigned short port=ui->lineEdit->text().toUShort();
m_tcp->connectToHost(QHostAddress(ip),port);
ui->pushButton->setEnabled(false);
}
由于服务器没有开启监听,这个时候没有连接上,但是我过了一下子,打开了服务器的监听,发现这个客户端马上就连上了。这是为什么呢?connecttohost()函数不是在我点击按钮的时候就调用了吗?但是我没有开启监听,应该是没有成功啊?当我过了一会启动监听时,为什么这个客户端又立马连上了呢?