我有一个程序接收二进制序列化的网络数据包。我目前有一种方法,通过使用指针将数据直接从字节数组存储到结构中。但我现在需要的是一种在结构中存储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