1
我正在嘗試優化具有混合模式協議(元信息,握手,確認等的線協議以及二進制數據)的應用層協議。在客戶端等待ACK的狀態,我做boost asio async_read_until:如何從自定義MatchCondition引發錯誤?
async_read_until(socket, buffer, untill_crlf_maxbytes_1024_match_condition, handler);
凡untill_crlf_maxbytes_1024_match_condition
實現acxcording到async_read_until記錄here。
這裏的想法是讀取直到CR + LF,但等待只讀取1024個字節,這樣如果有什麼特別的事情發生,如果套接字得到一些垃圾,它就不會繼續讀取。
我的問題是,在untill_crlf_maxbytes_1024_match_condition
這種情況下引發錯誤是個好主意嗎?我如何在這種情況下提出錯誤?如果不是最好的選擇?
感謝AndyT,但據我所知,從鏈接的文檔,bool返回值只建議async_read是否可以停止或不。它並沒有告訴處理程序有錯誤。由於錯誤,我的意思是在目前爲止讀取的1024字節中未找到CR + LF。 – 2011-01-31 16:14:55