예제 #1
0
        public void ZlibTest()
        {
            BinaryStream stream = new BinaryStream();

            stream.WriteStringUtf8("abcdefg");

            byte[]       compressionZlib = CompressionManager.CompressionZlib(stream, CompressionLevel.Fastest, true);
            BinaryStream stream2         = new BinaryStream(compressionZlib);

            byte[]       decompressionZlib = CompressionManager.DecompressionZlib(stream2, true);
            BinaryStream stream3           = new BinaryStream(decompressionZlib);

            Assert.True(stream3.ReadStringUtf8() == "abcdefg");
        }
예제 #2
0
        public void SendDataPacket(DataPacket packet, bool needAck   = false,
                                   Reliability reliability           = Reliability.Reliable,
                                   CompressionLevel compressionLevel = CompressionLevel.Fastest)
        {
            packet.EncodeHeader();
            packet.EncodePayload();

            NetworkStream stream = new NetworkStream();

            stream.WriteVarInt((int)packet.Length);
            stream.WriteBytes(packet.GetBuffer());
            byte[] payload = CompressionManager.CompressionZlib(stream, compressionLevel, true);

            BatchPacket batch = new BatchPacket();

            batch.Payload  = payload;
            batch.EndPoint = ClientPeer.PeerEndPoint;

            ClientPeer.SendEncapsulatedPacket(batch, reliability, packet.Channel);
        }