[问题] 请教有关bytes转成structure

楼主: hawfu (阿呆)   2015-08-31 23:00:48
各位大大您好
小弟有个TCP/IP问题想请教大家
收到封包想将资料从Bytes 转换成 structure
但转换完成之后,查询结构变量好像每个变量都少1个byte不见
不知有人有遇过这种情形吗?如果有的话可以告知吗?谢谢!
底下是部份程式码
/*definition structure*/
public struct DI_Ack_Data {
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=12)]
public string Data_Length;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=50)]
public string Domain_Name;
}
有将结构变量宣告长度
/* bytes convert to structure */
public object BytesToStruct(ref 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);
}
}
PS:1.有先确认收到封包长度与资料是正确的
2.将封包透过BytesToStruct函数转换成Structure,查询结构变量发现每个都少1个
bytes.(ex:宣告一个字串是12bytes,但转换完变11bytes,少了1个)
这部份如果有那位大大知道,可否告知一下,谢谢!

Links booklink

Contact Us: admin [ a t ] ucptt.com