Example #1
0
        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);
            }
        }
Example #2
0
        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;
            }));
        }
        private void ListenerThread(object threadParams)
        {
            SocketThreadInfo threadInfo = (SocketThreadInfo)threadParams;

            Server = new TcpListener(IPAddress.Any, threadInfo.port);
            Server.Start();

            while (true)
            {
                ListeningStatus = ListenStatus.Listening;

                Connection      = Server.AcceptTcpClient();
                ConnectedStatus = ConnectionStatus.Connecting;

                try
                {
                    ListeningStatus = ListenStatus.Authenticating;
                    ConnectedStatus = ConnectionStatus.Authenticating;

                    EncryptedStream = new EncryptedNetworkStream(Connection.GetStream(), threadInfo.password, false);

                    ListeningStatus = ListenStatus.Connected;
                    ConnectedStatus = ConnectionStatus.Connected;

                    ProcessData();
                } catch (Exception ex) {
                }

                Connection = null;
            }
        }
Example #4
0
        private void ConnectToRemoteServer(object threadParams)
        {
            SocketThreadInfo threadInfo = (SocketThreadInfo)threadParams;

            Connection = new TcpClient();

            try
            {
                ConnectedStatus = ConnectionStatus.Connecting;
                Connection.Connect(new IPEndPoint(threadInfo.ip, threadInfo.port));

                ConnectedStatus = ConnectionStatus.Authenticating;
                EncryptedStream = new EncryptedNetworkStream(Connection.GetStream(), threadInfo.password, true);

                ConnectedStatus = ConnectionStatus.Connected;

                DisplayOpenMenuWithRemoteSettings();

                ProcessData();
            } catch (Exception ex) {
            }

            Connection = null;
        }