これはかなり初歩的な質問です。ソケットプログラミングを始めたばかりで、qt/c++ を使用しています。演習として、ソケット (ポート 80 での localhost ループバック) に接続し、そこにデータを書き込み、応答を待ち、端末に応答を出力する簡単なプログラムを作成しました。
プログラムの主なメソッドは次のとおりです。
void TcpSocket::ConnectSocket()
{
socket = new QTcpSocket(this);
socket->connectToHost("localhost", 80);
if(socket->waitForConnected(3000)){
qDebug() << "Connected";
socket->write("Hello Server");
socket->waitForBytesWritten(1000);
socket->waitForReadyRead(3000);
qDebug() << "Reading: " << socket->bytesAvailable();
qDebug() << socket->readAll();
socket->close();
}
else {
qDebug() << "Could not connect";
}
}
上記のコードの応答は次のとおりです。
Connected
Reading: 0
""
現在、ローカル マシンで Web ページを提供するポート 80 で localhost 用に設定された仮想ホストを実際に持っています。そのプログラムを実行すると、エンドポイント localhost:80 でまったく何も起こらないように見えます。
ポート 80 がリッスンしている場合、"Hello Server" はどこに書き込まれますか? で、なんで反応しないの?