protected void Write(Stream stream, SocketMessager messager) { MemoryStream ms = new MemoryStream(); byte[] buff = Encoding.UTF8.GetBytes(messager.GetCanParseString()); ms.Write(buff, 0, buff.Length); if (messager.Arg != null) { buff = Deflate.Compress(BaseSocket.Serialize(messager.Arg)); ms.Write(buff, 0, buff.Length); } this.Write(stream, ms.ToArray()); ms.Close(); }
protected byte[] GetWriteBuffer(SocketMessager messager) { using (MemoryStream ms = new MemoryStream()) { byte[] buff = Encoding.UTF8.GetBytes(messager.GetCanParseString()); ms.Write(buff, 0, buff.Length); if (messager.Arg != null) { var data = BaseSocket.Serialize(messager.Arg); using (MemoryStream msBuf = new MemoryStream()) { using (DeflateStream ds = new DeflateStream(msBuf, CompressionMode.Compress)) { ds.Write(data, 0, data.Length); buff = msBuf.ToArray(); ms.Write(buff, 0, buff.Length); } } } return(this.GetWriteBuffer(ms.ToArray())); } }