我有一個程序接收二進制序列化的網絡數據包。我目前有一種方法,通過使用指針將數據直接從字節數組存儲到結構中。但我現在需要的是一種在結構中存儲UTF字符串的方法,同時仍然保持從字節數組複製的簡單方法。該字符串被假定爲帶有一個無符號短的前綴,表示該字符串的字節長度。這是如何C#內部存儲char []或字符串,或者我需要使我自己的結構來存儲它?如何存儲長度前綴字符串
我現在的結構佈局是這樣的:
public struct GenericPacket
{
public short packetid;
public static GenericPacket ReadUsingPointer(byte[] data)
{
unsafe
{
fixed (byte* packet = &data[0])
{
return *(GenericPacket*)packet;
}
}
}
}
讀取使用指針只是需要一個字節數組,並返回一個指針,但作爲一個GenericStruct。這適用於每種正常類型,但字符串更復雜。
感謝您的任何想法!
所以,前綴是以字節爲單位......這是否意味着沒有?! – jduncanator 2012-07-10 06:35:50