示例#1
0
 // Client
 private void Client_Connect(object sender, RoutedEventArgs e)
 {
     client = new CavemanTcpClient(ClientConnectIP.Text + ":11500");
     client.Events.ClientConnected    += Events_ClientConnected;
     client.Events.ClientDisconnected += Events_ClientDisconnected;
     client.Connect(5000);
 }
示例#2
0
        // Public
        public void StartTransfer(List <DirectoryItem> itemsToSend, Device device)
        {
            if (device == null)
            {
                return;
            }

            if (IsBusy)
            {
                return;
            }


            // Copy list to prevent changes while sending
            items = itemsToSend.Select(item => (DirectoryItem)item.Clone()).ToList();


            // Create connection
            client       = new CavemanTcpClient(device.IPAddress.ToString(), port);
            serverDevice = device;

            client.Events.ClientConnected    += Events_ClientConnected;
            client.Events.ClientDisconnected += Events_ClientDisconnected;

            client.Keepalive.EnableTcpKeepAlives    = true;
            client.Keepalive.TcpKeepAliveInterval   = 5;
            client.Keepalive.TcpKeepAliveTime       = 5;
            client.Keepalive.TcpKeepAliveRetryCount = 5;

            client.Connect(Settings.SettingsData.MaxNetworkPingMs);

            // TODO Add timeout
        }
示例#3
0
        public void TerminateConnection()
        {
            if (terminatingConnection || client == null)
            {
                return;
            }


            terminatingConnection = true;


            // TODO Cancellation token for sending


            if (client != null)
            {
                client.Disconnect();
                client = null;
            }

            serverEncryptor = null;
            serverDevice    = null;

            OnRecordableEvent("Connection terminated.", Console.ConsoleMessageType.Common);
            terminatingConnection = false;
        }
示例#4
0
        static void InitializeClient()
        {
            _Client        = new CavemanTcpClient("127.0.0.1", 8000, false, null, null);
            _Client.Logger = Logger;

            _Client.Events.ClientConnected += (s, e) =>
            {
                Console.WriteLine("Connected to server");
            };

            _Client.Events.ClientDisconnected += (s, e) =>
            {
                Console.WriteLine("Disconnected from server");
            };
        }
示例#5
0
        static void InitializeClient()
        {
            _Client        = new CavemanTcpClient("127.0.0.1", 8000, true, "cavemantcp.pfx", "simpletcp");
            _Client.Logger = Logger;

            _Client.Events.ClientConnected += (s, e) =>
            {
                Console.WriteLine("Connected to server");
            };

            _Client.Events.ClientDisconnected += (s, e) =>
            {
                Console.WriteLine("Disconnected from server");
            };
        }
示例#6
0
        static void Main(string[] args)
        {
            _Token = _TokenSource.Token;

            Task.Run(() => StartEchoServer(), _Token);

            _Client = new CavemanTcpClient("127.0.0.1", 9000, false, null, null);
            _Client.Events.ClientConnected += (s, e) =>
            {
                Console.WriteLine("[Client] connected");
            };

            _Client.Events.ClientDisconnected += (s, e) =>
            {
                Console.WriteLine("[Client] disconnected");
            };

            _Client.Logger = Console.WriteLine;

            while (_RunForever)
            {
                Console.Write("Command [? for help]: ");
                string userInput = Console.ReadLine();
                if (String.IsNullOrEmpty(userInput))
                {
                    continue;
                }

                switch (userInput)
                {
                case "?":
                    Console.WriteLine("Available commands:");
                    Console.WriteLine("q         quit");
                    Console.WriteLine("cls       clear the screen");
                    Console.WriteLine("connect   connect to server");
                    Console.WriteLine("send      send clientecho to the server");
                    Console.WriteLine("read      read data from the server");
                    Console.WriteLine("");
                    break;

                case "q":
                    _RunForever = false;
                    break;

                case "cls":
                    Console.Clear();
                    break;

                case "connect":
                    _Client.Connect(5000);
                    break;

                case "send":
                    _Client.Send("clientecho");
                    break;

                case "read":
                    ReadResult rr = _Client.Read(10);
                    if (rr.Status == ReadResultStatus.Success)
                    {
                        Console.WriteLine("[Client] read 10 bytes: " + Encoding.UTF8.GetString(rr.Data));
                    }
                    else
                    {
                        Console.WriteLine("*** [Client] read status: " + rr.Status.ToString());
                    }
                    break;
                }
            }
        }