写入tcp套接字

时间:2013-05-29 23:11:11

标签: sockets tcp

这是一个非常基本的问题。我刚刚开始一些套接字编程,我正在使用qt / c ++。我写了一个简单的程序作为练习连接到套接字(端口80的localhost环回),向它写入一些数据,等待repsonse,然后在我的终端输出响应。

这是该计划的主要方法:

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”写入哪里?为什么不回应?

1 个答案:

答案 0 :(得分:0)

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

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