Exemplo n.º 1
0
 public override void WriteMessage(Message message, System.IO.Stream stream)
 {
     System.IO.MemoryStream ms = new System.IO.MemoryStream();
     innserEncoder.WriteMessage(message, ms);
     stream = new DESCryption(key, iv).Encrypt(ms);
     stream = new Compressor(algorithm).Compress(stream);
 }
Exemplo n.º 2
0
        public override Message ReadMessage(System.IO.Stream stream, int maxSizeOfHeaders, string contentType)
        {
            //读取消息的时候,二进制流为加密的,需要解压
            Stream  ms1 = new Compressor(this.algorithm).DeCompress(stream);
            Stream  ms  = new DESCryption(key, iv).Decrypt(ms1);
            Message msg = innserEncoder.ReadMessage(ms1, maxSizeOfHeaders, contentType);

            return(msg);
        }
Exemplo n.º 3
0
        public override ArraySegment <byte> WriteMessage(Message message, int maxMessageSize, BufferManager bufferManager, int messageOffset)
        {
            ArraySegment <byte> bytes  = innserEncoder.WriteMessage(message, maxMessageSize, bufferManager);
            ArraySegment <byte> buffer = new DESCryption(key, iv).Encrypt(bytes);
            int totalLength            = buffer.Count + messageOffset;

            byte[] totalBytes = bufferManager.TakeBuffer(totalLength);
            Array.Copy(buffer.Array, 0, totalBytes, messageOffset, buffer.Count);
            ArraySegment <byte> byteArray = new ArraySegment <byte>(totalBytes, messageOffset, buffer.Count);

            Console.WriteLine(",原来字节流大小:" + bytes.Count + ",压缩后字节流大小:" + byteArray.Count);
            return(byteArray);
        }
Exemplo n.º 4
0
        public override Message ReadMessage(ArraySegment <byte> buffer, BufferManager bufferManager, string contentType)
        {
            ArraySegment <byte> bytes = new DESCryption(key, iv).Decrypt(buffer);
            int totalLength           = bytes.Count;

            byte[] totalBytes = bufferManager.TakeBuffer(totalLength);
            Array.Copy(bytes.Array, 0, totalBytes, 0, bytes.Count);
            ArraySegment <byte> byteArray = new ArraySegment <byte>(totalBytes, 0, bytes.Count);

            bufferManager.ReturnBuffer(byteArray.Array);
            Message msg = innserEncoder.ReadMessage(byteArray, bufferManager, contentType);

            return(msg);
        }