2017-04-10 73 views

回答

1

您可以使用James Montemagno的Connectivity Plugin

您可以通過調用來檢查您使用的設備是否已連接;

bool isConnected = CrossConnectivity.Current.IsConnected;

或者,你可以「平」的服務器,看看它是否能達到。你可以是這樣做的:

var isReachable = await CrossConnectivity.Current.IsReachable("google.com", 5000);

您也可以提供一個IP地址。第二個參數是默認爲5秒的超時。還有特定的IsRemoteReachable方法,這也讓你指定一個端口號。

該庫可以在PCL中使用。

注意;對於Android,您將需要ACCESS_NETWORK_STATEACCESS_WIFI_STATE權限,它應該在安裝NuGet包時自動添加。

+0

感謝您的回覆,詹姆斯蒙特馬格諾的插件非常有用,它的工作原理就像魅力:) –

+0

您可以請檢查以下問題https://stackoverflow.com/questions/45018464/crossconnectivity-throws-an-exception – hotspring

0

在大多數情況下,它是通過ICMP ping完成的。您可以每1-5秒鐘ping一次服務器,具體取決於您的應用。但是由於性能和安全原因,我建議使用來自服務器的多播地址和ping(最後一個需要防火牆也可以在服務器端配置)。如果某些回覆(至少3個)未到達目標主機,則可以確定丟失的連接。

相關問題