在C#的UDP接收嵌入式设备端发送的结构体数据时,经过
//声明一个SDK_MSG_DEVICEINFO的结构体
[Serializable] // 指示可序列化
[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
//[StructLayout(LayoutKind.Sequential, Pack = 1)] // 按1字节对齐
public struct SDK_MSG_DEVICEINFO
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] // 声明一个字符数组,大小为64
public string hardware_ver; //硬件版本
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)] // 声明一个字符数组,大小为20
public string szMacAddr; //MAC STRING
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] // 声明一个字符数组,大小为32
public string szUID;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] // 声明一个字符数组,大小为32
public string szPwd;
};
///发送的时候先要把结构转换成字节数组
/// 将结构转换为字节数组
/// 结构对象
/// 字节数组
public byte[] StructToBytes(object obj)
{
//得到结构体的大小
int