Я думал, что все это выяснил, но теперь, когда я пишу веб-сервер, что-то работает не совсем правильно.
Приложение прослушивает порт для входящих запросов, и когда оно получает один, он читает все до последовательности "\ r \ n \ r \ n".(Поскольку это означает конец заголовков - да, я игнорирую возможные данные POST.)
Теперь, после того, как он читает это далеко, он записывает в сокет ответ:
HTTP/1.1 200 OK\r\n
Host: 127.0.0.1\r\n
Content-type: text/html\r\n
Content-length: 6\r\n
\r\n
Hello!
Однако, когда Firefox или Chrome пытаются просмотреть страницу, она не отображается.Chrome сообщает мне:
Ошибка 324 (net :: ERR_EMPTY_RESPONSE): неизвестная ошибка.
Что я делаю не так?
Здесьэто часть кода:
QTcpSocket * pSocket = m_server->nextPendingConnection();
// Loop thru the request until \r\n\r\n is found
while(pSocket->waitForReadyRead())
{
QByteArray data = pSocket->readAll();
if(data.contains("\r\n\r\n"))
break;
}
pSocket->write("HTTP/1.0 200 OK\r\n");
QString error_str = "Hello world!";
pSocket->write("Host: localhost:8081\r\n");
pSocket->write("Content-Type: text/html\r\n");
pSocket->write(tr("Content-Length: %1\r\n").arg(error_str.length()).toUtf8());
pSocket->write("\r\n");
pSocket->write(error_str.toUtf8());
delete pSocket;