public static byte[] CreatePacket(ref ForwardClass fStruct) { byte[] buf; byte[] tmpBuf; int len; MemoryStream stream; BinaryFormatter bFormatter; stream = new MemoryStream(); bFormatter = new BinaryFormatter(); bFormatter.Serialize(stream, fStruct); tmpBuf = stream.ToArray(); stream.Close(); len = tmpBuf.Length; if (len > 0xFFFF) throw new ArgumentOutOfRangeException(); buf = new byte[len + 2]; buf[0] = (byte)len; buf[1] = (byte)(len >> 8); Array.Copy(tmpBuf, 0, buf, 2, len); ForwardClass fff = ParsePacket(tmpBuf); return buf; } public static ForwardClass ParsePacket(byte[] buf) { ForwardClass fClass = null; MemoryStream stream; BinaryFormatter bFormatter; stream = new MemoryStream(); stream.Write(buf, 0, buf.Length); stream.Flush(); bFormatter = new BinaryFormatter(); fClass = (ForwardClass)bFormatter.Deserialize(stream); stream.Close(); return fClass; }