iphone - 单点触摸的原始套接字

标签 iphone ios sockets xamarin.ios ping

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

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

知道如何在 monotuch 中执行 ping 操作吗?为什么我不能创建原始套接字?

最佳答案

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

缺少Pingknown问题,通常可以通过使用 Reachability 来解决 helper 。 Sample代码在 GIT 上可用。

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

相关文章:

node.js - 在NestJs中使用Socket IO加入并发布到房间

iPhone 应用程序失去互联网连接(NSURLConnection 未返回)

iphone - 在 iPhone 的数组中存储地址簿联系人

ios - 适用于 iPhone X 的原始深度图 SDK

ios - 图像按钮 socket 集合和操作

c++ - unix域流套接字发送更多数据,那么它应该是

ios - 在哪里放置用户登录与用户注销逻辑?

ios - 从 segue 显示 View 时导航栏消失

ios - UILabel 手势响应

java - 无法将数据从 Java 客户端发送到 Python 服务器