目前,我正在编写使用TcpListener
/ TcpClient
的客户端/服务器应用程序。我已经看到了类似答案的类似问题,但我看到了相互矛盾的答案,并希望通过直接处理此调查的问题进行澄清。因此,如果我将字节写入客户端的基础NetworkStream
,那么字节“组”(即如果我在客户端调用NetworkStream.write()
两次)将以客户端编写它们的相同顺序到达服务器?例如,如果我这样做:
stream.write(System.Text.Encoding.ASCII.GetBytes("hi"));
stream.write(System.Text.Encoding.ASCII.GetBytes("goodbye"));
stream.read()
是否总是首先得到“hi”的字节数组,或者是否有某种机会首先读取“goodbye”? (我在消息头中定义每条消息的长度,因此知道每条消息的长度不是问题。)
答案 0 :(得分:2)
我不熟悉NetworkStream,但TCP以发送的原始顺序传递这些消息 - 许多系统都非常依赖于此。