private void Server_ClientDisconnected(object sender, TCPServer.ClientConnectionArgs e)
 {
     Device.BeginInvokeOnMainThread(delegate()
     {
         foreach (var kv in clients)
         {
             if (kv.Value == e.Client)
             {
                 clients.Remove(kv.Key); break;
             }
         }
         foreach (var d in ClientDisplayers)
         {
             if (d.Client == e.Client)
             {
                 ClientDisplayers.Remove(d); break;
             }
         }
         Device.BeginInvokeOnMainThread(delegate()
         {
             clientLister.ItemsSource = null;
             clientLister.ItemsSource = ClientDisplayers;
         });
     });
 }
        private void Server_ClientConnected(object sender, TCPServer.ClientConnectionArgs e)
        {
            var id = GetClientId();

            clients.Add(id, e.Client);
            e.Client.SendString($"AssignID: \"{id}\" WelcomeMsg: \"Welcome! Your Id: {id}");
            ClientDisplayers.Add(new ClientDisplayer(e.Client, id));
            Device.BeginInvokeOnMainThread(delegate()
            {
                clientLister.ItemsSource = null;
                clientLister.ItemsSource = ClientDisplayers;
            });
        }
示例#3
0
        private void Server_ClientConnected(object sender, TCPServer.ClientConnectionArgs e)
        {
            Log("Client connection { Host: " + e.Client.Ip.ToString() + " Port: " + e.Client.Port.ToString() + " }", Color.Orange);
            var tmout = e.Client.ClientSocket.ReceiveTimeout;

            e.Client.ClientSocket.ReceiveTimeout = 5000;
            var connectCode = "NULL";

            try { connectCode = e.Client.ReceiveString(); } catch { }
            e.Client.ClientSocket.ReceiveTimeout = tmout;
            if (connectCode != "RemoteBrowser#CODE#")
            {
                SendPackage(e.Client, "Code rejected");
                server.DisconnectClient(e.Client);
                Log($"Client Code rejected; {{ Host: {e.Client.Ip} Port: {e.Client.Port}}}");
            }
            else
            {
                Log($"Client Code accepted; {{ Host: {e.Client.Ip} Port: {e.Client.Port}}}");
                monitorThreads.Add(new Thread(new ParameterizedThreadStart(MonitorPackages))); monitorThreads.Last().Start(e.Client);
            }
        }
示例#4
0
 private void Server_ClientConnected(object sender, TCPServer.ClientConnectionArgs e)
 {
     AddClient(e.Client);
     new Thread(new ParameterizedThreadStart(ClientListen)).Start(e.Client);
 }
示例#5
0
 private void Server_ClientDisconnected(object sender, TCPServer.ClientConnectionArgs e)
 {
     RemoveClient(e.Client);
 }