
請問網路流瞬間開啟多個異步寫,那么最后服務端收到的順序是否會亂掉?
如果異步 BeginWrite() 換成同步的 Write() 呢?
uj5u.com熱心網友回復:
你服務端不會是按接收的順序再拼起來吧?uj5u.com熱心網友回復:
話說你根本沒有明白什么是異步和異步的用法,一般對網路流進行異步接收判斷是基于現有協議的,比如Modbus或自定義的可變長協議,判斷出完整幀后(對完整幀進行校驗),呼叫回呼函式,對接收到的資料進行指令型別識別,再獲取資料部分,根據Type和Data完成指定的操作,你這明顯是在亂用!uj5u.com熱心網友回復:
如果你怕亂掉,就在 頭部加上 序號,總包數,資料長度等等其他的 頭位元組。uj5u.com熱心網友回復:
異步寫是沒有問題。問題。底下一般是個buffer,你只是往這個buffer的其中一段寫所以實際上你需要保證的是寫入順序,別把一個大包并行分次寫入,如果需要把邏輯上的大包并行分次寫這就要使用協議保證了
uj5u.com熱心網友回復:
開出的異步執行緒,執行順序無法確定轉載請註明出處,本文鏈接:https://www.uj5u.com/net/130319.html
標籤:C#
上一篇:在下小白,想請教一下用vs2008把vb3.0轉vb.net出現錯誤的原因
下一篇:函式執行結果回傳型別
