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 を実行しました。多くの例でそこにさまざまな機能があることに気付いたので、接続機能の SLOT についてはわかりません。
プログラムを実行すると、エラーは発生せず、プログラムは問題なく実行されます。しかし、ログイン ボタンを押すと、ダイアログ ボックスが約 15 秒間フリーズし、応答しなくなります。その後、「接続時にエラーが発生しました」というメッセージが表示されます。どんな助けでも大歓迎です。