包是这样的 ([126 1 126 ],[126 2 126], [126 3],[126 4 126])整个收到的包
会出现这种情况吗 

解决方案 »

  1.   

    在传输过程中肯定不会出现你这种情况
    UDP是整包传输的,肯定不会偷懒
    TCP更加不可能出现这种情况
    唯一的解释就是:你处理出错了
      

  2.   

    给每一段数据前面加上BitConverter.GetBytes(data.Length)的4个字节的数据
    表示这一段数据的长度
    然后读取的时候
    byte[] buffer = 缓冲;
    int current = 0;
    int length = 接收的长度;
    while(current < length)
    {
      //当前位置小于接收长度,意味着后面还有数据
      //下一段数据的长度
      int dataLength = BitCoverter.ToInt32(buffer.Skip(current).Take(4).ToArray(),0);
      //获取这段数据
      byte[] data = buffer.Skip(current+4).Take(dataLength).ToArray();
      //当前位置+4+数据长度
      current+=4+dataLength;
      //处理这一段数据的代码
      ....*****....  
    }