public void TestClientServer() { SecureRandom secureRandom = new SecureRandom(); DtlsClientProtocol clientProtocol = new DtlsClientProtocol(secureRandom); DtlsServerProtocol serverProtocol = new DtlsServerProtocol(secureRandom); MockDatagramAssociation network = new MockDatagramAssociation(1500); Server server = new Server(serverProtocol, network.Server); Thread serverThread = new Thread(new ThreadStart(server.Run)); serverThread.Start(); DatagramTransport clientTransport = network.Client; clientTransport = new UnreliableDatagramTransport(clientTransport, secureRandom, 0, 0); clientTransport = new LoggingDatagramTransport(clientTransport, Console.Out); MockDtlsClient client = new MockDtlsClient(null); DtlsTransport dtlsClient = clientProtocol.Connect(client, clientTransport); for (int i = 1; i <= 10; ++i) { byte[] data = new byte[i]; Arrays.Fill(data, (byte)i); dtlsClient.Send(data, 0, data.Length); } byte[] buf = new byte[dtlsClient.GetReceiveLimit()]; while (dtlsClient.Receive(buf, 0, buf.Length, 100) >= 0) { } dtlsClient.Close(); server.Shutdown(serverThread); }