这是一个非常基本的问题。我刚刚开始一些套接字编程,我正在使用qt/c++。我编写了一个简单的程序作为练习,它连接到一个套接字(端口80处的本地主机环回),向其中写入一些数据,等待repsonse,然后在我的终端中输出响应。
下面是程序的main方法:
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“写到哪里?为什么它没有反应呢?
发布于 2013-05-30 07:52:40
web服务器没有响应您所写的内容,因为您没有完成发送请求。至少,您需要在您的写作中添加"\n\r\n“。
https://stackoverflow.com/questions/16825430
复制相似问题