单点触摸的原始sockets

我试图在MonoTouch中实现pingfunction。 由于某些原因,来自System.Net.NetworkInformation Ping类不能在真实的设备上工作,所以我决定切换到原始套接字并自己实现ping。 不幸的是,我得到了“访问被拒绝”的信息:

 socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp); 

任何想法如何可以ping单点触摸? 为什么我不能创build原始套接字?

我还没有尝试原始套接字,但是您的拒绝访问可能意味着它们在iOS中受到限制 – 就像它们在UNIX系统上需要 root权限一样。 这就是为什么在某些情况下不能直接 (解决方法) 允许 Ping类在Mono for Linux系统上工作的原因。

缺lessPing是一个已知问题, 通常可以通过使用Reachability助手来解决。 示例代码在GIT上可用。

你可以使用SimplePing的Xamarin.iOS / MonoTouch绑定(苹果公司在iOS上说过)。

https://github.com/theonlylawislove/MonoTouch.SimplePing

检查testing项目的演示使用情况。 在模拟器和设备上工作。