2016-07-24 35 views
0

當前,我正在編碼使用TcpListener/TcpClient的客戶端/服務器應用程序。我已經看到類似的問題有類似的答案,但我看到了相互矛盾的答案,並希望澄清與這個問題直接相關的問題。因此,如果我將字節寫入客戶端的底層NetworkStream,那麼字節「組」(即如果我呼叫NetworkStream.write()兩次客戶端)按照客戶端寫入的順序到達服務器?例如,如果我這樣做:如果我通過Networkstream發送多個數據包,它們是否都以相同的順序到達?

stream.write(System.Text.Encoding.ASCII.GetBytes("hi")); 
stream.write(System.Text.Encoding.ASCII.GetBytes("goodbye")); 

stream.read()總是得到字節數組,上面寫着「喜」第一,還是有某種機會說「再見」就先讀? (我在消息頭中定義了每條消息的長度,所以知道每條消息的長度並不是問題)。

+0

TCP是一種流媒體協議,可以保證按順序發送。 – Wazner

+0

訂單被保留,分組不是。 – CodeCaster

回答

2

我對NetworkStream不熟悉,但TCP以原始順序發送這些消息 - 許多系統強烈依賴於此。

+0

'NetworkStream'僅用於處理流協議。它取決於底層協議(在這種情況下是TCP),所以沒有什麼變化。 :) –

相關問題