2011-06-28 90 views
2

我是一般的網絡編程新手,請耐心等待。在boost文檔中我找不到任何關於此的信息。當使用asio :: async_read時,當沒有數據從套接字讀取時(至少,我認爲是),會引發文件錯誤結束。有什麼辦法來實施某種檢查來防止這種行爲?我試圖得到的是:有沒有辦法等待數據出現,然後讀取所述數據並調用處理程序? (如果這是措辭不當,請告訴我,我會嘗試澄清。)boost :: asio閱讀煩惱

回答

3

當使用ASIO :: async_read, 文件錯誤的結束時,有沒有從讀 數據上升套接字

eof在套接字的另一端關閉時返回,而不是在沒有要讀取的數據時。

我試圖讓在是:有 任何方式來等待數據是 目前,然後讀取所述數據和 呼叫處理程序?

這就是所謂的輪詢,這是什麼asio io_service爲你做。您通過發起async_read告訴io_service您想要從套接字讀取數據。它代表您執行讀取操作,並在成功完成或不成功時調用完成處理程序。

Boost.Asio提供的異步和同步方法之間可能值得您花費study the differences

+0

感謝您的快速回答!猜猜這是我的客戶端而不是我的服務器的問題。 – chameco