private async void HandleNetworkChange(object sender, NetworkStatusEventArgs e) { if (!waitingForConnectivity) { return; } if (e.Status != NetworkStatus.NotReachable) { await SynchronizeAsync().ConfigureAwait(false); } }
private void OnNetworkReachabilityChanged(object sender, NetworkStatusEventArgs e) { if (!waitingForConnectivity) { return; } if (e.Status != NetworkStatus.NotReachable) { var options = OnConnectivityOptions; OnConnectivityOptions = null; SynchronizeAsync(options); } }
/// <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; } }