问题是在做socket通信程序遇到的:
报文内容主要是struct构成的,现在已经通过StructToBytes方法把报文转化成byte[],并且已经在客户端接收到了,现在我需要分析byte[]内容,取出比如说其中第15和16字节的值。要用哪个函数呢?代码怎么写呢??谢谢!有结果了最快晚上结贴!

解决方案 »

  1.   

    自己写嘛, byte[14] byte[15] 这些值不就出来了吗?不知道对不对啊
      

  2.   

    public struct struct1
    {
                public uint SourceIP; //发方地址           
                public uint RecIP; //收方地址
                public uint SourcePort; //发方端口号
                public uint RecPort; //收方端口号            
                public ushort SourceID; //发方id            
                public ushort RecID; //收方id
                public uint PacketType; //报文类型            
                public ushort PacketLength; //报文长度  
                
    }其中发方初始化:
                                SourceIP = 0xBC01040A;
                                RecIP = 0xBC010401;
                                SourcePort = 1111;
                                RecPort = 1111;
                                SourceID = 0001;
                                RecID = 0002;
                                PacketType = 03;
                                PacketLength = 40;
    最后收放得到:
    315418317831541831691111111112340
    如果我想根据得到的数据分析出PacketType(红色部分) 是03;应该怎么写呢???按照#1方法byte[*],这个*应该是多少呢,呵呵 基础没学好!
    顺便问问我想让收到的数据里SourceIP和RecIP还是十六进制的0xBC01040A和0xBC010401而不是3154183178和3154183169应该怎么做呢
      

  3.   

    string str = Convert.ToString("十进制数", 16);
    return str;
    把收到的10进制转成16进制的就行了至于你第一个问题 没看太明白