C# 读取字节数组

2024-03-11

好的,我正在构建服务器 客户端应用程序。

基本上服务器接收一个包含 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(使用前将#替换为@)

C# 读取字节数组 的相关文章

随机推荐