相关疑难解决方法(0)

提升asio套接字是否有适当的RAII清理

我尝试查看源代码,但我无法浏览大量的模板代码.基本上:这就是文档所说的(for close()):

Remarks    
For portable behaviour with respect to graceful 
closure  of a connected socket, call shutdown() before closing the socket.
Run Code Online (Sandbox Code Playgroud)

我可以手动完成,但如果可能,依靠RAII会很好.

所以,如果我有插座走出去的范围,我需要打电话shutdown()close()上它,或者它会自动完成?

c++ raii boost-asio

7
推荐指数
1
解决办法
1800
查看次数

ip :: tcp :: socket.close()线程安全吗?

如果async_read套接字上有a ,则应该有一个内部线程来io_service检查套接字的状态.socket.close()从另一个线程调用是否安全(也许当它运行一个单独的处理程序时io_service)?

我的意思是即使我可以保证我的处理程序不会同时使用asio socket,它是否足够好(考虑内部线程时io_service)?

更新: 我正在使用async_read堆栈协程.与本文档底部的示例非常相似,只是我的有一个额外的函数层调用yield_context.如果我在该示例中调度socket.close()操作,my_strand整个事情是否安全?换句话说,所有相关的操作(堆栈协程的async_read中间async_read_some,隐式处理程序socket.close())是否会通过单个链运行my_strand

boost-asio c++11

5
推荐指数
1
解决办法
2580
查看次数

标签 统计

boost-asio ×2

c++ ×1

c++11 ×1

raii ×1