Есть следующий код маленького сервачка:
#include <QDebug>
#include <QTcpSocket>
#include <QTcpServer>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QTextStream cout(stdout);
QTcpServer server;
if(server.listen(QHostAddress::Any, 1122)){
qDebug() << "Listenning....";
}
server.waitForNewConnection(10000);
qDebug() << server.hasPendingConnections();
QTcpSocket *socket = server.nextPendingConnection();
socket->waitForReadyRead(5000);
qDebug() << socket;
qDebug() << socket->readAll();
QString data = "HTTP/1.1 200 OK\r\n\r\n%1";
socket->write(data.arg("message accepted").toLatin1());
socket->flush();
//socket->disconnectFromHost();
return a.exec();
}
В браузере вбиваем адрес localhost:1122, тыцаем Enter и ждем. Сервер отображает данные которые пришли, и пытается ответить браузеру. Но ответ в браузере появляется только тогда, когда прописана строчка //socket->disconnectFromHost(); Если строку не прописывать, то ответ не приходит. Что это может быть?
Попробуйте воспользоваться готовым решение.
Как я понимаю, не получится просто отправить строку в сокет, что бы браузер все понял. Нужно соблюсти кодировку (UTF-8), сжать данные (zlib, gzip), заполнить шапку HTTP/REST ответа.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники