2013-01-20 16 views
9

我將爲我的項目使用boost :: asio lib。但是,從本地套接字c庫中,哪個函數對應於select()並不是很明顯。這在asio中可用嗎?或者我們提供替代方法來找出套接字已準備就緒?在boost :: asio中選擇功能

+1

+1這可能看起來像一個基本問題,但我發現asio庫的新用戶常常被這個概念所困惑。 –

回答

5

Boost.Asio的高層次設計基於Proactor desing pattern。因此,您不需要輪詢select。相反,提交您的完成處理程序的異步操作,並且當操作完成 - 完成處理程序被調用。

6

文檔具有specific section用於映射BSD套接字API調用轉換成它們各自的短耳等效

poll()select()pselect()

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

注意:結合n與異步操作。

注意,有各自的這些io_service方法之間的細微差別,選擇正確的一個將取決於您的應用程序設計。