【问题标题】:boost::asio::socket keep alive set_option exception [duplicate]boost::asio::socket 保持活动 set_option 异常 [重复]
【发布时间】:2015-06-29 16:15:11
【问题描述】:

我像这样创建一个套接字:

client<THeader>::client(boost::asio::io_service* io_service, std::string const & host, int port)
    :_host(host), 
    _port(port), 
    _socket(boost::asio::ip::tcp::socket(*io_service)), 
    _io_service(io_service)
{
    boost::system::error_code ec;
    boost::asio::socket_base::keep_alive option(true);
    _socket.set_option(option, ec);
    bool is_set = option.value();
}

is_settrue。但是ec 有一个非零值。我该如何理解这一点?不过之后我可以使用套接字。看起来它工作正常。

ec.what() = set_option: The file handle supplied is not valid

【问题讨论】:

  • ec中设置了什么错误?
  • @JoachimPileborg : 错误值为 10009
  • @JoachimPileborg : set_option: The file handle supplied is not valid

标签: c++ boost-asio


【解决方案1】:

您需要open 套接字才能使用它。在调用 open 之前,不会创建实际的底层套接字描述符。

或者使用constructor that both create the object and opens the socket

【讨论】:

    猜你喜欢
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    相关资源
    最近更新 更多