I am going to use boost::asio lib for my project. But it's not quite obvious which function is corresponding to select()
from native socket C lib. Is that available in asio? Or does boost provide an alternative to find out if a socket is ready?
The high-level design of Boost.Asio
is based on the Proactor desing pattern. Thus, you don't need to poll on select
. Instead, submit your completion handler for an asynchronous operation, and when the operation gets completed - the completion handler gets called.
The documentation has a specific section for mapping the BSD socket API calls into their respective Asio equivalent
poll()
,select()
,pselect()
io_service::run()
,io_service::run_one()
,io_service::poll()
,io_service::poll_one()
Note: in conjunction with asynchronous operations.
Note that there are subtle differences between each of these io_service
methods, picking the correct one will depend on your application design.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With