如何在 Windows Phone 8.1 中 ping 一个 IP

How to ping an IP in Windows Phone 8.1

我正在编写 Windows Phone 需要与服务器保持连接的应用程序(准确地说是 windows 服务应用程序)。我想 ping 服务器,比方说,每 1 秒一次以捕获断开连接等。

此外,我必须指出我正在使用 Windows Phone SilverLight 8.1 项目(我无法在正常 Windows Phone 8.1 中执行此操作,因为 Socket class 不是包括)

到目前为止,我发现的最快方法是使用 System.Net.NetworkInformation 中的 Ping class。问题是 visual studio 说没有 Ping class.

好的,MSDN 文档没有提到 Windows Phone SilverLight 8.1 作为受支持的平台。但是当我创建测试 Windows Phone 8.1 项目视觉时再次说 Ping 不存在。

Here is MSDN documentation page:

这里是支持的平台:

Platforms:
Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

为什么我不能使用 Ping class?

如果这不是我的错(比如缺少程序集等),我如何 "ping" 我的服务器应用程序以不同的方式?

您正在寻找错误的 System.Net.Information 实现。您链接的是桌面 .NET 版本。对于正确的,您需要查看 Silverlight .NET class 库:https://msdn.microsoft.com/en-us/library/3ew4thdx(v=VS.95).aspx

Ping 在 Silverlight 中不可用,但您可以使用 Windows.Network.Sockets:

实现自己的 ping 命令

http://blogs.msdn.com/b/wsdevsol/archive/2013/03/19/datagram-socket-communication-in-windows-phone-8.aspx