我在这里遇到此代码的问题。
using (MemoryStream ms = new MemoryStream())
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(ms,SerializableClassOfDoom);
ms.Position = 0;
byte[] messsize = BitConverter.GetBytes(ms.Length);
ms.Write(messsize, 0, messsize.Length);
NetworkStream ns = Sock.GetStream();
ms.CopyTo(ns);
//ms.Close();
}
我无法弄清楚这里发生了什么,或者为什么它不起作用。似乎它没有复制,或者它关闭了网络流,或者其他什么。
对不起,我试过调试它,但如果有人能在这里看到任何明显的问题,我将不胜感激。
顺便说一句,该类可以很好地序列化,并且 MemoryStream 包含数据,但是由于某种原因,执行 ms.CopyTo(ns) 似乎不起作用?
基本上我想要做的是将类序列化为网络流,序列化数据的大小在它之前。如果有人有更好的方法来做到这一点,请告诉我!