看板 C_and_CPP 關於我們 聯絡資訊
在我的程式中會連結許多的socket,我希望以輪詢的方式來詢問這些socket是否有收到 任何的訊息而不新增任何一條thread。 但是boost的asio下面的read似乎少了一個函式 ,那種可以立即返回又不block的read。 boost::asio::read 以及 socket.read_some 都會block直到指定的buffer讀滿,後來 我找到了下面這樣的寫法... boost::asio::read(socket , buffer , boost::asio::transfer_at_least(0),error) 這曾經是我唯一的希望,他它卻失敗了。 我本來希望 trasnfer_at_least(0) 是可以讓這行read是以non-block的方式運行,但是 結果是 它永遠讀 0 byte 就立即返回。 目前採用的方式是boost::asio::read_until() 但,讓它如同readLine一樣的方式運行 但實在是不太保險的感覺 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.165.222.196
ctrlbreak:google boost async_read_some() 02/03 22:54
neigence:那個不是要使用 service.run() 之類的讓他callback? 02/03 22:58
neigence:我再仔細google看看 謝謝 02/03 22:59