static Task server() { return(Task.Run(async() => { TcpListener listen = new TcpListener(24444); listen.Start(); Task c = client(); while (true) { var sock = await listen.AcceptSocketAsync(); using (var ens = new EncryptedNetworkStream(sock)) { await ens.ExchangeAsync(); using (var write = ens.WriteBlock()) { write.WriteString("Hello"); using (var read = await write.ReadBlockAsync()) { Console.WriteLine(await read.ReadStringAsync()); } } } break; } listen.Stop(); await c; })); }
static async Task client() { try { Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); await sock.ConnectAsync(new IPEndPoint(IPAddress.Loopback, 24444)); using (var ens = new EncryptedNetworkStream(sock)) { await ens.ExchangeAsync(); using (var read = await ens.ReadBlockAsync()) { Console.WriteLine(await read.ReadStringAsync()); using (var write = read.WriteBlock()) { write.WriteString("World."); } } } } catch (Exception ex) { Console.WriteLine("CLIENT: " + ex.Message); } }