вторник, 14 июня 2011 г.

C++ Network Library Урок 1. Hello World сервер

Нам надо сделать простую программу которая прослушивает какойто порт (допустим 8080) и в ответе на запрос возвращает "Hello World".
Вот весь код:
namespace http = boost::network::http;

struct handler;
typedef http::server<handler> http_server;

struct handler {
    void operator() (http_server::request const & request_,
                     http_server::response & response_) {
        response = http_server::response::stock_reply(
            http_server::response::ok, "Hello, world!");
    }

    void log(http_server::string_type const & info) {
        std::cerr << "ERROR: " << info << '\n';
    }

};

int main(int arg, char * argv[]) {
    handler handler_;
    http_server server_("0.0.0.0", "8000", handler_);
    server_.run();
}
Ответ формулируется так:

response = http_server::response::stock_reply(http_server::response::ok, "Hello, world!");
здесь http_server::response::stock_reply() записывает ответ клиенту
которий состоит из кода ответа сервера (в данном случае HTTP 200 OK) и текста что клиент увидит в браузере. в void log(...) записывается ошибка если такова есть.
Переходим до main(...) {...}
первую строку думаю объяснять не надо, дальше записываем в конструктор нужные параметры, ip сервера порт структура handler_
http_server server_("localhost", "8080", handler_); 
запукаем цикл прослушивания
server_.run();
это синхронный сервер, об асинхронном раскажу в следующих публикациях.

Комментариев нет:

Отправить комментарий