0

这是一个非常初级的问题。我刚刚开始一些套接字编程,我正在使用 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 
"" 

现在,现在我实际上在端口 80 上为 localhost 设置了一个虚拟主机,它为我的本地机器上的网页提供服务。当我执行该程序时,端点 localhost:80 上似乎什么也没有发生。

如果端口 80 正在侦听,它会将“Hello Server”写入哪里?为什么它没有响应?

4

1 回答 1

0

Web 服务器没有响应您写的内容,因为您没有完成发送请求。至少,您需要在您的文章中添加“\n\r\n”。

https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

于 2013-05-29T23:52:39.697 回答