c# 网络编程 如何 发送 接收 结构体(struct/class)?

c# 网络编程 如何 发送 接收 结构体(struct/class)?


米琪卡哇伊
浏览 433回答 2
2回答

杨魅力

//struct转换为byte[]public static byte[] StructToBytes(object structObj){int size = Marshal.SizeOf(structObj);IntPtr buffer = Marshal.AllocHGlobal(size);try{Marshal.StructureToPtr(structObj, buffer, false);byte[] bytes = new byte[size];Marshal.Copy(buffer, bytes, 0, size);return bytes;}finally{Marshal.FreeHGlobal(buffer);}}

ibeautiful

 1、struct转换为byte[] static   byte[]   StructToBytes(object   structObj)      {      int   size   =     Marshal.SizeOf(structObj);      IntPtr   buffer   =   Marshal.AllocHGlobal(size);      try      {      Marshal.StructureToPtr(structObj,   buffer,   false);      byte[]   bytes   =   new   byte[size];      Marshal.Copy(buffer,   bytes,   0,   size);      return   bytes;      }      finally      {      Marshal.FreeHGlobal(buffer);      }           }       2、byte[]转换为struct   static   object   BytesToStruct(byte[]   bytes,   Type   strcutType)      {      int   size   =     Marshal.SizeOf(strcutType);      IntPtr   buffer   =   Marshal.AllocHGlobal(size);      try      {      Marshal.Copy(bytes,   0,   buffer,   size);      return   Marshal.PtrToStructure(buffer,   strcutType);      }      finally      {      Marshal.FreeHGlobal(buffer);      }      }
打开App,查看更多内容
随时随地看视频慕课网APP