Как создать Http-сервер с сокетами TCP-сервера в C++/QT

Я хочу создать Http-сервер для отправки потока MJPEG. Поэтому, во-первых, я хочу создать простую версию, которая просто отправляет html/ текст. Мне уже удалось настроить TCP-сервер, но я понятия не имею, как "вести себя" как http-сервер.

Что я сделал: создал TCP-сервер. Когда клиент подключается, создается TCP-сокет. Затем я реализовал слот ReadyRead, который выполняется, когда браузер отправляет запрос "GET" на сервер.

GET / HTTP / 1.1
Host: 127.0.0.1:8889
Пользователь-агент: Mozilla/5.0...

Затем я запускаю следующий код

QByteArray header = "HTTP/ 1.1 200 OK\r\n";
m_Client->write(header);

QByteArray ContentType = "Content-Type: text/html\r\n";
m_Client->write(ContentType);

QByteArray Body = "Test";
m_Client->write(Body);

m_Client->close();

Но то, что я вижу в браузере

HTTP/ 1.1 200 ОК
Тип контента: текст / HTML
Тестовое задание

Так что я делаю не так? Я думал о получении запроса Client GET, об отправке заголовка, Mimes и контента взамен, а затем о закрытии соединения... Является ли этот метод неправильным или просто так, как я его кодировал?

1 ответ

Решение

У вас есть дополнительное пространство между / а также 1.1и вам не хватает пустой строки между блоком заголовков и телом ответа.

Другие вопросы по тегам