我用socket从服务器接过来数据 一包数据有4096条
                        但是里面有很多条信息  buf[0] = 0xFF;
                buf[1] = 0xFE;
                这是一条数据的开头  这是
                buf[98] = 0xFF;
                buf[99] = 0xFF;一条数据的结尾 然后我要把每条数据都单独的提取出来
                        应该怎么弄?

解决方案 »

  1.   

    直接用byte去读取
    0xFF  就是255
      

  2.   

    建立一个字节数组list
    对你的buf进行逐个查找,当找到起始位置后,标记起始位置,然后找到结束位置后标记结束位置。
    依据每个信息的长度定义数据,将该条信息对应的数据复制到定义的数组中去。
    依此知道buf结束。
    代码我就不写了。
      

  3.   

    头是buf[0] = 0xFF;
      buf[1] = 0xFE;尾是
    buf[98] = 0xFF;
      buf[99] = 0xFF;是不一样的代码要怎么写啊?
      

  4.   

    List<Byte[]> msgs=new List<Byte[]>();
    List<Byte> bts=null;
    for(int i=0;i<buf.Length;i++){
    if(buf[i]==0xFE){
      bts=new List<Byte>();
    }else if(buf[i]==oxFF){
      if(bts!=null)msgs.Add(bts.ToArray());
    }else{
      bts.Add(buf[i]);
    }
      

  5.   

    直接用一个循环:
    int i =0;
    while(i<4096)
    {
    if(buf[i] == 0xFF && buf[i+1] == 0xFE && buf[i+98] == 0xFF && buf[i+99] == 0xFF)
    {
    //取数
    ....i+=100;
    }
    else
    {
    i++;
    }
    }