我一直在寻找测试或检查设备与包含我的数据库的服务器之间的连接的解决方案。 注意:我想在我的PCL项目上实现解决方案。
答案 0 :(得分:3)
你可以使用James Montemagno的Connectivity Plugin。
您可以通过调用来检查您使用的设备是否已连接;
bool isConnected = CrossConnectivity.Current.IsConnected;
或者,您可以“ping”服务器以查看是否可以访问它。你可以这样做:
var isReachable = await CrossConnectivity.Current.IsReachable("google.com", 5000);
您还可以提供IP地址。第二个参数是超时,默认为5秒。还有特定的IsRemoteReachable
方法,您也可以指定端口号。
此库可用于PCL。
请注意;对于Android,您需要 ACCESS_NETWORK_STATE 和 ACCESS_WIFI_STATE 权限,在安装NuGet包时应自动添加。
答案 1 :(得分:0)
在大多数情况下,它是使用ICMP ping完成的。您可以每1-5秒ping一次服务器,具体取决于您的应用程序。但我建议使用多播地址并从服务器ping那个,因为性能和安全原因(最后一个也需要在服务器端配置防火墙)。如果某些回复(至少3个)未到达目标主机,您可以确定连接丢失。