Example #1
0
        private async void HandleNetworkChange(object sender, NetworkStatusEventArgs e)
        {
            if (!waitingForConnectivity)
            {
                return;
            }

            if (e.Status != NetworkStatus.NotReachable)
            {
                await SynchronizeAsync().ConfigureAwait(false);
            }
        }
Example #2
0
        private void OnNetworkReachabilityChanged(object sender, NetworkStatusEventArgs e)
        {
            if (!waitingForConnectivity)
            {
                return;
            }

            if (e.Status != NetworkStatus.NotReachable)
            {
                var options = OnConnectivityOptions;
                OnConnectivityOptions = null;
                SynchronizeAsync(options);
            }
        }
Example #3
0
        /// <summary>
        /// Event that handles a change in network or client status
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="networkStatusEventArgs"></param>
        private void NetworkConnectionStatus(object sender, NetworkStatusEventArgs networkStatusEventArgs)
        {
            switch (networkStatusEventArgs.Message)
            {
                case NetworkStatus.NetworkUnavailable:
                    label1.Text = "Network adapter not available.";
                    label2.Text = "Disconnected.";
                    break;
                case NetworkStatus.NetworkListening:
                    label1.Text = "Listening on " + networkStatusEventArgs.Data;
                    break;
                case NetworkStatus.ClientConnected:
                case NetworkStatus.ClientDisconnected:
                    if (networkStatusEventArgs.Message == NetworkStatus.ClientConnected)
                    {
                        if (!_clientsList.Contains(networkStatusEventArgs.Data))
                        {
                            SendJson();
                            _clientsList.Add(networkStatusEventArgs.Data);
                        }
                        else
                        {
                            NetMessage nm = new NetMessage();
                            _nc.SendMessage(nm);
                        }
                    }
                    else
                    {
                        if (_clientsList.Contains(networkStatusEventArgs.Data))
                            _clientsList.Remove(networkStatusEventArgs.Data);
                        SendJson();
                    }

                    if (_nc.ActiveClients.Count == 0)
                    {
                        label2.Text = "Disconnected.";
                        break;
                    }
                    var ipEndPoint = _nc.ActiveClients[0].RemoteEndPoint as IPEndPoint;
                    if (ipEndPoint != null)
                        label2.Text = "Client connected from " + ipEndPoint.Address;
                    break;
                case NetworkStatus.ClientCommand:
                    ExecuteCommand(networkStatusEventArgs.JsonMessage);
                    break;
            }
        }