2015-02-20 2 views
-1

Мой C++ сервер-приложение должно иметь порт 80 открыт для вывода некоторых JSON (для других веб-приложений, чтобы увидеть статус)Простой веб-сервер для C++

Я видел несколько веб-сервер, что я могу spwan из класса C++, но они кажутся довольно сложными. Мне не нужен запрос/ответ, просто строка, которую я время от времени обновляю и которая отображается на порту 80.

My server-app работает в цикле, поэтому я предполагаю, что это должен быть поток, который получает обновление строки каждый раз здесь. Пожалуйста, укажите мне в правильном направлении, я абсолютно неправ в своем планировании/мышлении.

+3

Нет такой вещи, как _ "строка, которую я время от времени обновляю, а затем отображается на порту 80." _. Вы не можете _display_ __anything__ на _port_. Вы также не можете поместить там строку, поскольку порт не является контейнером. это __коммуникационный механизм. Однако вы можете обрабатывать запросы, отправленные на этот конкретный порт, поэтому вам нужна система запроса/ответа. Очень простой tho. –

+0

[Tntnet] (http://www.tntnet.org/) - это веб-сервер с открытым исходным кодом на C++, возможно, он может служить источником вдохновения. – Beginner

+0

HTTP - это протокол ответа на запрос, как вы можете сказать, что вам не нужен какой-либо запрос/ответ? Надеюсь, вы имели в виду http, когда вы сказали «webserver» – sanjayk79

ответ

4

Простейшим решением, вероятно, будет использование веб-сервера для обслуживания статического файла и его приложения для обновления содержимого по мере необходимости.

Просто обратите внимание на конфигурацию сервера, чтобы сообщить клиентам, что содержимое не должно кэшироваться.

Еще одна важная часть - создать новый файл и перенести его в место назначения (опубликованное) после завершения файла (чтобы клиенты не загружали неполный файл, который может быть недействительным).

+0

Правда, я не думал об этом, это кажется удивительным, мне не нужно разбираться с какой-либо логикой сервера, а потом :-) спасибо! – xuedi

0

Вы можете использовать некоторую библиотеку HTTP-сервера, такую ​​как libonion (или, возможно, Wt или libmicrohttpd) в вашем приложении на C++.

Обратите внимание, что libonion обычно запускает веб-службу в каком-либо другом потоке, поэтому вам необходимо позаботиться о синхронизации (например, с использованием мьютексов), а также может обслуживать статический контент и статические файлы.

Смежные вопросы