我正在构建一个与 iOS(设备和模拟器)通信的 Mac 应用程序。当与模拟器一起使用时,它旨在仅使用 Wifi 网络(用于 Mac 网络范围内的设备)或环回/链接本地设备。它不应该使用 3G/LTE 网络,但通过 wifi 将 iOS 设备连接到其网络的 VPN 连接可能对某些用户有用。
使用基于 CFNetwork/CFRunloop/CFStream 的套接字比使用 BSD 套接字(结合 GCD 和 dispatch_io)“进入金属”有什么优势吗?
在我看来,如果我要使用 GCD、调度 I/O 和调度源而不是基于 CFNetwork/CFRunLoop 的数据读/写事件,那么 CFNetworking 只是在 BSD 套接字之上添加了不必要的抽象。
网络协议将是自定义二进制协议。即,不基于 HTTP 或任何其他现有协议。