我开发 IOS 应用程序,它需要从一台 iPhone(或 iPod)到另一台 iPhone(或 iPod)进行标准 TCP 连接。模拟器和设备上的应用程序之间以及两个模拟器之间的连接效果很好。
应用程序使用 posix connect() 并且我必须坚持这种方法,因为其他模块是纯 C 的。
调用 connect() 应用程序块时,超时后返回错误。通信是通过局域网中的wifi进行的
我已经嗅探了流量并遇到了,在连接到模拟器后,设备发送 ARP 并在应答后,标准 TCP 握手进行并建立会话。
iPhone<>iPhone 在 ARP 请求后停止相同的情况,因为另一台 iPhone 没有响应它。此外,iOS 仅发送无偿 ARP(宣布它是 mac ip 对)。我的 MAC 似乎正在处理这个请求,因为它的 ARP 表有 iPhone 记录,它不适用于另一台 iPhone。
我试过 bonjour 服务,但它也只适用于模拟器 <> 设备。
我的问题:有没有办法允许这样的交流?有没有可能只是我的 iPhone 有问题?是否有任何明确的方法来告诉操作系统为 arps 发送响应,或者它是否以某种方式阻止了流量 ios<>ios 通信。