C++ boost::asio::套接字保持活动设置\u选项异常
我创建了一个套接字,如下所示:C++ boost::asio::套接字保持活动设置\u选项异常,c++,boost-asio,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) {
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();
}
client::client(boost::asio::io_服务*io_服务,std::string const&host,int端口)
:_主机(主机),
_港(港),,
_套接字(boost::asio::ip::tcp::socket(*io_服务)),
_io_服务(io_服务)
{
boost::system::error_code ec;
boost::asio::socket\u base::keep\u alive选项(true);
_插座。设置_选项(选项,ec);
bool is_set=option.value();
}
已设置
为真
。但是ec
具有非零值。我怎么能理解这一点?不过我以后可以用这个插座。它似乎工作正常
ec.what()=set\u选项:提供的文件句柄无效
您需要先插入套接字,然后才能使用它。在调用之前,不会创建实际的底层套接字描述符
或者使用。和
ec
中设置了什么错误?@JoachimPileborg:error值为10009@JoachimPileborg:set\u选项:提供的文件句柄无效