【问题标题】:How to check if server is reachable in PCL project xamarin?如何在 PCL 项目 xamarin 中检查服务器是否可访问?
【发布时间】:2017-04-10 09:39:02
【问题描述】:

我一直在寻找解决方案来测试或检查我的设备与包含我的数据库的服务器之间的连接。 注意:我想在我的 PCL 项目中实施该解决方案。

【问题讨论】:

    标签: c# mobile xamarin


    【解决方案1】:

    您可以为此使用 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_STATEACCESS_WIFI_STATE 权限,安装 NuGet 包时会自动添加。

    【讨论】:

    【解决方案2】:

    在大多数情况下,它是通过 ICMP ping 完成的。根据您的应用程序,您可以每 1-5 秒 ping 一次服务器。但出于性能和安全原因,我建议使用多播地址并从服务器 ping 该地址(最后一个也需要在服务器端配置防火墙)。如果某些回复(至少 3 个)没有到达目标主机,您可以确定连接丢失。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      • 2017-05-14
      • 2011-08-22
      • 2017-10-28
      • 2012-03-13
      • 1970-01-01
      相关资源
      最近更新 更多