2015-12-09 3 views
0

Я не могу получить ошибку конечной точки, если я установил неверный/занятый порт. Я использую сервер websocket, который публично унаследован от конечной точки форсирования. Я хочу, чтобы обрабатывать ошибки здесь:Ошибка запуска/запуска конечной точки ручного управления

try { 
    m_server.reset(); // leads to some errors/warnings in console, but it works :) 
    m_server.listen(777777777); 
    m_server.start_accept(); 

    m_thread = std::thread(&Server::run, &m_server); 

    return true; 
} 
catch (...) { 
    m_running = false; 
    return false; 
} 

Я попытался m_server.is_listening(), m_server.stopped() и т.д., но они показывают одинаковый результат как для нормы/плохой номер порта. Как я могу обработать ошибку?

UPD1: Я использую websocketpp библиотека

ответ

1

Попробуйте ловить исключения типа websocketpp::exception и вызова метода code() на них. Это должно возвращать определенный код ошибки, который вы можете проверить, чтобы убедиться, что это «неправильный/занятый порт» или какая-либо другая ошибка.

В качестве альтернативы, если вы хотите избежать исключений, большинство методов (например, прослушивание) принимают второй параметр кода ошибки и заполняют это кодом ошибки, который был бы установлен в исключении.

+0

Я забыл ответное решение здесь. – user2123079

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