c++ - 即使在销毁 boost::asio::ip::tcp::socket 后如何使用原始文件描述符?

标签 c++ sockets boost

假设,我在 boost::asio::ip::tcp::socket 类型中分配了任何原始 fd,那么我可以再次从中检索原始 fd 以再次发送数据吗?

我的意思是,销毁 boost::asio::ip::tcp::socket 是否会确保 fd 也被关闭,如果是,那么我该如何防止它?

最佳答案

您可能应该手动创建套接字,并使用 posix::stream_descriptor 来代替:

更新:

正如文档所反射(reflect)的,(basic_)stream_descriptor 没有自定义析构函数,因此分配的 fd 不会在销毁时关闭。 (我简要检查了基类的完整性)。

关于c++ - 即使在销毁 boost::asio::ip::tcp::socket 后如何使用原始文件描述符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30976515/

相关文章:

c++ - 获取自纪元以来以微秒为单位的当前时间戳?

java - java 的 File 类的对象是可序列化的吗?

c++ - : "warning: comparison between ' enum A<B >' and ' enum A<B >'"? 这是什么意思

c++ - 符号在这里做什么?

c++ - 如何遍历 vector 并知道元素的索引?

c++ - 用于 GLSL 图像处理的小型 C/C++ 库?

使用 select() 的 Python TCP 服务器

java - 通过 Java UDP 网络发送 JPanel

c++ - 使用 boost::program_options 时,如何设置参数的名称?

c++ - 传递参数(本身就是一个引用)目标的引用