我正在尝试在MonoTouch中实现ping功能。
由于某些原因,Ping中的System.Net.NetworkInformation类在实际设备上不起作用,因此我决定切换到原始套接字并自己实现ping。
不幸的是,我收到“拒绝访问”消息:

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

知道如何在单点触控中执行ping吗?为什么我不能创建原始套接字?

最佳答案

我没有尝试过原始套接字,但是您的访问被拒绝可能意味着它们在iOS中受到限制-就像它们在UNIX系统上具有require root 特权一样。这就是为什么在某些情况下无法直接(存在替代方法)allow Ping类在Linux系统的Mono上工作的原因。

缺少Pingknown问题,通常可以使用Reachability帮助程序来解决。 Sample代码在GIT上可用。

关于iphone - 单触点原始 socket ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8282041/

10-16 19:37