在boost :: asio中选择功能

elt*_*sky 12 c++ sockets boost-asio

我将为我的项目使用boost :: asio lib.但是,select()从本机套接字C lib 对应哪个函数并不是很明显.在asio中可以使用吗?或者,boost是否可以找出套接字是否准备就绪?

Sam*_*ler 7

该文档有一个特定的部分,用于将BSD套接字API调用映射到它们各自的Asio等效项

poll(),select(),pselect()

io_service::run(),io_service::run_one(),io_service::poll(), io_service::poll_one()

注意:与异步操作结合使用.

请注意,这些io_service方法之间存在细微差别,选择正确的方法取决于您的应用程序设计.


Igo*_* R. 6

高级设计Boost.Asio基于Proactor设计模式.因此,您不需要轮询select.相反,提交完成处理程序以进行异步操作,并在操作完成时 - 调用完成处理程序.


Ish*_*ora 5

Boost.Asio 确实使用 null_buffers 提供了类似选择的功能。/sf/answers/328056641/解释了更多。