我将为我的项目使用 boost::asio lib。select()
但是从本机套接字 C 库中对应哪个函数并不是很明显。asio里有这个吗?或者 boost 是否提供了一种替代方法来确定套接字是否准备就绪?
问问题
6533 次
3 回答
8
的高级设计Boost.Asio
基于Proactor设计模式。因此,您无需在select
. 相反,为异步操作提交完成处理程序,当操作完成时 - 完成处理程序被调用。
于 2013-01-20T12:37:08.883 回答
8
该文档有一个特定部分用于将 BSD 套接字 API 调用映射到它们各自的 Asio 等效项
poll()
,select()
,pselect()
io_service::run()
,io_service::run_one()
,io_service::poll()
,io_service::poll_one()
注意:结合异步操作。
请注意,每种方法之间存在细微差别io_service
,选择正确的方法取决于您的应用程序设计。
于 2013-01-20T15:34:41.713 回答
5
Boost.Asio 确实使用 null_buffers 提供了类似选择的功能。https://stackoverflow.com/a/4686523/1134207解释更多。
于 2013-09-03T10:06:27.883 回答