private static void Client() { var log = new Logger("Client"); var client = new TcpClient("localhost", 30000); log += "Connected"; var ss = new SecureStream(client.GetStream(), rsa, true); log += "Wrapped in SecureStream"; ss.Send("Hello server!", log); ss.Send("Hello server!", log); ss.Read(log); ss.Send("Okay :) Cya!", log); ss.Send("Have a wonderful day!", log); ss.Close(); log += "Closed SecureStream"; }
private static void Server() { var log = new Logger("Server"); var serv = new TcpListener(IPAddress.Any, 30000); serv.Start(); log += "Started"; var client = serv.AcceptTcpClient(); log += "Accepted connection"; var ss = new SecureStream(client.GetStream(), rsa, false); log += "Wrapped in SecureStream"; ss.Read(log); // Test if the ciphertext is different each round (it is not) ss.Read(log); ss.Send("\nDear client\n" + "\n" + "I have succesfully received your message.\n" + "Note that your message will be lost in the echo." + "\n" + "Best of wishes\n" + "Server\n" + "\n" + "PS: Foobar ;)\n", log); // Ensure it doesn't read 'too much' data and it correctly returns // the data var l = ss.Read(log, 5); Debug.Assert(l == 5); ss.Read(log); ss.ReadAsync(log).AsyncWaitHandle.WaitOne(); ss.Close(); log += "Closed SecureStream"; }