关于 TCP 的几个问题。
我知道如果数据包到达具有较低 MTU 等的网络设备,数据包将被“拆分”或碎片化。但我遇到的问题是了解如何在应用程序中“重建”我的有效负载。(我现在已经尝试了 2-3 个小时,但似乎无法做到正确)
第一件事。发送数据包时,以下两个选项的优缺点是什么;
NetworkStream ns = client.GetStream();
ns.Write(BitConverter.GetBytes(100));
ns.Write(BitConverter.GetBytes("Test"));
或者
NetworkStream ns = client.GetStream();
byte[] payload = BitConverter.GetBytes(100).Concat(BitConverter.GetBytes("Test"));
ns.Write(payload); //, 0, payload.Length);
以及如何在 recv 处重建有效负载。部分是否已拆分?我喜欢用勺子喂这个,因为我似乎错过了我当前应用程序中一些非常重要但不那么明显的部分。