【问题标题】:websocketpp "Underlying Transport Error" when listening监听时websocketpp“基础传输错误”
【发布时间】:2017-10-10 01:43:01
【问题描述】:

我在我的程序中使用websocketpp作为websocket服务器。但是最近在一些用户的环境中,当我监听某个特定端口时,发生了一个错误,我打印了error_code的消息,它是“底层传输错误”,这意味着第三方安全软件上的某些防火墙阻止了监听? 代码如下:

std::error_code ec;
server_->set_message_handler(boost::bind(&on_message, server_, ::1, ::2));
server->set_tls_init_handler(boost::bind(&on_tls_init,MOZILLA_INTERMEDIATE,::1));
server->init_asio(ec);
server->listen(2007 , ec);

执行init_asio后没有返回错误,但是listen后出现了错误。

谢谢大家

【问题讨论】:

    标签: c++ websocket


    【解决方案1】:

    首先确保您的程序没有吞噬来自 websocketpp 的任何日志信息。例如,下面的注释行将阻止日志记录:

    websocketpp::server<websocketpp::config::asio> server;
    //server.set_access_channels(websocketpp::log::alevel::none);
    //server.set_error_channels(websocketpp::log::elevel::none);
    

    然后,当您运行程序时,您应该得到如下内容:

    [2018-07-25 10:33:10] [info] asio listen error: system:98 (Address already in use)
    

    这对应于:boost/asio/error.hpp 中的错误代码。另见:Boost error codes reference

    我猜你有两个程序实例试图在同一个端口上运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-30
      • 2017-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      相关资源
      最近更新 更多