Есть следующий код маленького сервачка:
#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 ответа.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Функция принимает на вход две части кода кириллицы (2 байта)Нужно преобразовать их в русский текст
Как написать удаление элемента односвязного списка, если этот элемент - это значение переменной другого класса?
При составлении регулярного выражения не получается сохранить каждую часть входного путиВходная строка: