这是一个非常基本的问题。我刚刚开始一些套接字编程,我正在使用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”写入哪里?为什么不回应?
答案 0 :(得分:0)
由于您没有完成发送请求,因此Web服务器没有响应您所写的内容。至少,您需要在写作中添加“\ n \ r \ n”。