c++ - boost::asio::socket keep alive set_option 异常

标签 c++ boost-asio

<分区>

我这样创建一个套接字:

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:提供的文件句柄无效

最佳答案

您需要open套接字,然后才能使用它。在你打电话之前 open未创建实际的底层套接字描述符。

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

关于c++ - boost::asio::socket keep alive set_option 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31109713/

相关文章:

c# - 从 C++ 回调到 C#

c++ - 学习类 C++ - 无法在嵌套在另一个类中的类数组中设置值。

c++ - 尝试初始化动态数组时未处理异常

c++ - 根据没有类或结构的另一个 vector 的元素对一个 vector 进行排序

c++ - boost asio检测/避免接收缓冲区溢出

c++ - boost::asio::co_spawn 在 MSVC 中未定义

c++ - QPixmap::grabWindow 应用程序卡住后

c++ - boost deadline_timer 不等待

c++ - 如何使用 asio 库获取 ip 地址的主机名?

C++ boost 如何将函数作为参数传递给异步操作处理程序