请教下应该如何分析,C#接收到的是byte数组,如果数据包里有各种类型,比如一个长10的byte数组, 前4位是一个int32,那就要截取4位,然后转成int32,后3位是string,就再截取3位 Encoding 转为string等等。C++直接定义结构体然后用结构体接收就对应上了,修改只用改结构体就行,而C#这样截取一旦数据包有变化,截取的位数等等都要改,很麻烦。请教下C#应该用什么方法来分析数据包才比较正确和方便。

解决方案 »

  1.   

    问题基本类似这个http://tieba.koolea.com/disp.aspx?bid=200711300833314095&id=61889可惜没什么好的解决办法
      

  2.   

    序列化就可以,你可以将一个对象序列化为byte数组,接收这边再反序列化回去就可以了.
      

  3.   


    Buffer.BlockCopy();//自己看参数说明
    BitConverter.ToInt32();//可以转任何值类型
    Encoding.ASCII.GetString()//注意编码方式,自己看吧