好的,我正在构建服务器 客户端应用程序。
基本上服务器接收一个包含 header[2bytes]、cryptokeys[2bytes] 和数据的数据包
我正在考虑构建类以将整个数据包(字节[])加载到其中,然后使用内部类方法处理数据包。现在回答问题。对此最好的方法是什么?我需要能够读取 Int16 Int32 String(int lenght) 并且可能是 float
编辑:有点像binaryreader,但是将 byte[] 作为输入
我会说BinaryReader
是您最好的选择。根据过去的经验,有时您需要继承 BinaryReader。一个主要示例是当您需要读取以 null 结尾的字符串时,因为 BinaryReader 读取长度前缀的字符串。或者您可以编写自己的类,但最终将提供与 BinaryReader 相同的功能。
最后我可能会创建我自己的类。这样,如果您需要更改提取数据的方式,您只需编辑您的类即可。如果您使用 BinaryReader 编写整个项目并意识到需要添加功能,您将screwed.
public class MyBinaryReader : BinaryReader
{
public MyBinaryReader(byte[] input) : base(new MemoryStream(input))
{
}
public override string ReadString()
{
// read null-terminated string
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)