private void ReadBody(byte[] bytes, int start, int length) { _buffObject.WriteBytes(bytes, start, length); var idx = _buffObject.CheckLineFeed(LineFeed); if (idx >= 0) { var len = idx; var requested = new byte[len]; Array.Copy(_buffObject.buffer, 0, requested, 0, len); _protocol.ProcessMessage(requested); idx += 1; if (idx < _buffObject.offset) { //多出来些数据 len = _buffObject.offset - idx; var v = new byte[len]; Array.Copy(_buffObject.buffer, idx, v, 0, len); _buffObject.offset = 0; ProcessBytes(v, 0, len); } else { _buffObject.offset = 0; } } _transportState = TransportState.ReadBody; }