Как изменить URI, что http_listener слушать его

Я использую http_listener библиотеки cpprest(casablanca) в качестве моего сервера.
после некоторого запроса от клиента я хочу изменить URI, чтобы этот слушатель слушал его в handle_post слушателя.
В main.cpp у меня есть этот код:

    changeIpOrPort = 0;


try
{

    while (true){

        web::http::experimental::listener::http_listener *MyListener = new web::http::experimental::listener::http_listener(uri("http://"+MyserverIpaddress+":"+MyserverPort+"/"));
        MyListener->support(methods::GET, handle_get);
        MyListener->support(methods::POST, handle_post);

        MyListener
                ->open()
                .then([&MyListener]() {TRACE(L"\n Again starting to listen\n"); })
                .wait();

        std::cout <<"current ip server is :"<<MyserverIpaddress<<" current port is "<< MyserverPort  <<endl;
        changeIpOrPort = 0;
        while(changeIpOrPort == 0);
        MyListener->close();
        delete(MyListener);

    }

}
catch (exception const & e)
{
    wcout <<L"exception is " <<e.what() << endl;
}

в функции handle_post, которая определяется в source.cpp, когда я узнаю, что клиент хочет изменить IP-адрес сервера, я устанавливаю changeIpOrPort равным 1.
но я поднимаю исключение:
bind: невозможно назначить запрошенный адрес

Кто-нибудь знает, почему возникает это исключение и как его исправить?

0 ответов

Другие вопросы по тегам