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 }
public void Connected(TestPacketStream packetStream) { this.packetStream = packetStream; }