为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
米琪卡哇伊 2019-05-16 15:10:32
c# 网络编程 如何 发送 接收 结构体(struct/class)?
查看完整描述

2 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

//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);
}
}






查看完整回答
反对 回复 2019-05-17
?
ibeautiful

TA贡献1993条经验 获得超5个赞

 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);   
  }   
  }




查看完整回答
反对 回复 2019-05-17
  • 2 回答
  • 0 关注
  • 432 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信