當前,我正在編碼使用TcpListener
/TcpClient
的客戶端/服務器應用程序。我已經看到類似的問題有類似的答案,但我看到了相互矛盾的答案,並希望澄清與這個問題直接相關的問題。因此,如果我將字節寫入客戶端的底層NetworkStream
,那麼字節「組」(即如果我呼叫NetworkStream.write()
兩次客戶端)按照客戶端寫入的順序到達服務器?例如,如果我這樣做:如果我通過Networkstream發送多個數據包,它們是否都以相同的順序到達?
stream.write(System.Text.Encoding.ASCII.GetBytes("hi"));
stream.write(System.Text.Encoding.ASCII.GetBytes("goodbye"));
將stream.read()
總是得到字節數組,上面寫着「喜」第一,還是有某種機會說「再見」就先讀? (我在消息頭中定義了每條消息的長度,所以知道每條消息的長度並不是問題)。
TCP是一種流媒體協議,可以保證按順序發送。 – Wazner
訂單被保留,分組不是。 – CodeCaster