Ejemplo n.º 1
0
        public async Task PlainSocketTest()
        {
            TcpListener listener = new TcpListener(106);

            listener.Start();

            var       socketTask = listener.AcceptTcpClientAsync();
            TcpClient tcpClient  = new TcpClient("127.0.0.1", 106);

            var tcpServer = await socketTask;

            //var clientStream = tcpClient.GetStream();
            //var serverStream = tcpServer.GetStream();

            var serverStream = new TestPacketStream();
            var clientStream = new TestPacketStream();

            serverStream.Connected(clientStream);
            clientStream.Connected(serverStream);

            byte[] writeBuffer = Borlay.Arrays.ByteArray.New(64).Bytes;
            byte[] readBuffer  = new byte[writeBuffer.Length + 2];

            Stopwatch watch = Stopwatch.StartNew();

            for (int i = 0; i < 10000; i++)
            {
                TaskCompletionSource <int> tcs = new TaskCompletionSource <int>();


                clientStream.WritePacket(writeBuffer, (ushort)writeBuffer.Length - 2, true); //, CancellationToken.None);
                var count = serverStream.ReadPacket(readBuffer, CancellationToken.None);

                clientStream.WritePacket(writeBuffer, (ushort)writeBuffer.Length - 2, true); //, CancellationToken.None);
                count = serverStream.ReadPacket(readBuffer, CancellationToken.None);

                //await clientStream.WriteAsync(writeBuffer, 0, (ushort)writeBuffer.Length, CancellationToken.None);
                //var count = await serverStream.ReadAsync(readBuffer, 0, 64, CancellationToken.None);
                //Assert.AreEqual(64, count);
            }

            watch.Stop();

            // 10k 0.3s
            // testPS: 10k 0.03s
        }
Ejemplo n.º 2
0
 public void Connected(TestPacketStream packetStream)
 {
     this.packetStream = packetStream;
 }