我正在尝试创建一个应该连接到 C 服务器的客户端。我必须使用 TCP。我已经有一个功能齐全的服务器,但我无法连接我的客户端。我不想向服务器发送任何数据(此时)。我只想建立连接并打开一个新对话框。
这是 Void Login::on_pushButton_clicked() 插槽中的代码。// pushButton 是我的登录按钮
pSocket = new QTcpSocket (this);
connect (pSocket, SIGNAL(readyRead()), SLOT(waitNextStep()));
pSocket->connectToHost(ui->lineEdit->text(), ui->lineEdit_2->text().toInt());
if(pSocket->waitForConnected())
{
Menu mMenu;
mMenu.setModal(true);
mMenu.exec();
}
else
{
QMessageBox::critical(this,tr("Error"),tr("Error at Connect"));
}
我已经定义了 Menu 类,并且我知道它是有效的,因为我在没有连接部分的情况下对其进行了测试。lineEdits 中的 IP 获取部分也可以正常工作。pSocket 在 Login 类中声明为私有成员 (QTcpSocket *pSocket;)。
不幸的是,我是 QT 的新手,我真的不知道“waitNextStep()”函数应该包含什么。我刚刚做了一个 return 1; 我不确定 connect 函数中的 SLOT,因为我在许多示例中注意到那里有不同的函数。
如果我运行该程序,我不会收到任何错误,并且程序执行得很好。但是当我点击登录按钮时,对话框会冻结约 15 秒 - 它没有响应。之后,我收到“连接时出错”消息。任何帮助都感激不尽。