[問題] 請教有關bytes轉成structure
各位大大您好
小弟有個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個)
這部份如果有那位大大知道,可否告知一下,謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.172.211.153
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1441033251.A.0AC.html
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章