Я хочу создать Http-сервер для отправки потока MJPEG. Поэтому, во-первых, я хочу создать простую версию, которая просто отправляет html / текст. Мне уже удалось настроить TCP-сервер, но я понятия не имею, как «вести себя» как http-сервер.
Что я сделал:
Создан TCP-сервер. Когда клиент подключается, создается TCP-сокет. Затем я реализовал слот ReadyRead, который выполняется, когда браузер отправляет запрос «GET» на сервер.
GET / HTTP / 1.1
Host: 127.0.0.1:8889
User-Agent:
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
и вам не хватает пустой строки между блоком заголовков и телом ответа.
Других решений пока нет …