public async Task <bool> ReadAsync(PooledSocket socket) { this.StatusCode = -1; if (!socket.IsAlive) { return(false); } var header = await socket.ReadBytesAsync(HeaderLength); int dataLength, extraLength; DeserializeHeader(header, out dataLength, out extraLength); if (dataLength > 0) { var data = await socket.ReadBytesAsync(dataLength); this.Extra = new ArraySegment <byte>(data, 0, extraLength); this.Data = new ArraySegment <byte>(data, extraLength, data.Length - extraLength); } return(this.StatusCode == 0); }
public async Task<bool> ReadAsync(PooledSocket socket) { this.StatusCode = -1; if (!socket.IsAlive) return false; var header = await socket.ReadBytesAsync(HeaderLength); int dataLength, extraLength; DeserializeHeader(header, out dataLength, out extraLength); if (dataLength > 0) { var data = await socket.ReadBytesAsync(dataLength); this.Extra = new ArraySegment<byte>(data, 0, extraLength); this.Data = new ArraySegment<byte>(data, extraLength, data.Length - extraLength); } return this.StatusCode == 0; }