Пример #1
0
        public void ReadAndWriteMultipleFragmentsThreaded(int maxReadLength, int maxReserveLength)
        {
            this.reader = new TcpReader(this.readerTcpClient.Client, maxReadLength);
            this.writer = new TcpWriter(this.writerTcpClient.Client, maxReserveLength);

            this.writerTcpClient.Client.SendBufferSize = 1;

            var xdrReader = new XdrReader(this.reader);
            var xdrWriter = new XdrWriter(this.writer);

            byte[] value = TestXdr.GenerateByteTestData(17);

            var task = Task.Run(
                () =>
            {
                NetworkReadResult readResult = this.reader.BeginReading();
                Assert.That(readResult.SocketError, Is.EqualTo(SocketError.Success));
                Assert.That(xdrReader.ReadOpaque(), Is.EqualTo(value));
                Assert.That(xdrReader.ReadInt(), Is.EqualTo(42));
                this.reader.EndReading();
            });

            this.writer.BeginWriting();
            xdrWriter.WriteVariableLengthOpaque(value);
            xdrWriter.Write(42);
            this.writer.EndWriting(null);

            task.Wait();
        }
Пример #2
0
        public void ReserveMultipleFragmentsOpaque(int maxReadLength, int maxReserveLength)
        {
            var stubNetwork = new StubNetwork(maxReadLength, maxReserveLength);
            var reader      = new XdrReader(stubNetwork);
            var writer      = new XdrWriter(stubNetwork);

            byte[] value = GenerateByteTestData(21);
            writer.WriteVariableLengthOpaque(value);
            writer.Write(42);

            Assert.That(stubNetwork.WriteIndex, Is.EqualTo(32));
            Assert.That(reader.ReadOpaque(), Is.EqualTo(value));
            Assert.That(reader.ReadInt(), Is.EqualTo(42));
        }