public bool SetBuffer(SocketAsyncEventArgs e, IPacket packet) { int offset, length; var buffer = packet.GetBuffer(out offset, out length); if (length == 0) { return(false); } if (buffer == null) { return(false); } if (offset < 0 || offset >= buffer.Length) { return(false); } if (length <= 0 || length > buffer.Length) { return(false); } e.SetBuffer(buffer, 0, buffer.Length); return(true); }