[問題] 請教有關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