[問題] boost asio socket

看板C_and_CPP作者時間13年前 (2011/02/03 22:44), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
在我的程式中會連結許多的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

02/03 22:54, , 1F
google boost async_read_some()
02/03 22:54, 1F

02/03 22:58, , 2F
那個不是要使用 service.run() 之類的讓他callback?
02/03 22:58, 2F

02/03 22:59, , 3F
我再仔細google看看 謝謝
02/03 22:59, 3F
文章代碼(AID): #1DIhzV_v (C_and_CPP)