【问题标题】:Advantages of CFNetwork over BSD sockets & GCD on iOS and MacOS?CFNetwork 在 iOS 和 MacOS 上优于 BSD 套接字和 GCD 的优势?
【发布时间】:2013-07-06 01:24:04
【问题描述】:

我正在构建一个与 iOS(设备和模拟器)通信的 Mac 应用程序。当与模拟器一起使用时,它旨在仅使用 Wifi 网络(用于 Mac 网络范围内的设备)或环回/链接本地设备。它不应该使用 3G/LTE 网络,但通过 wifi 将 iOS 设备连接到其网络的 VPN 连接可能对某些用户有用。

使用基于 CFNetwork/CFRunloop/CFStream 的套接字比仅仅使用 BSD 套接字(结合 GCD 和 dispatch_io)“走向金属”有什么优势吗?

在我看来,如果我要使用 GCD、调度 I/O 和调度源而不是基于 CFNetwork/CFRunLoop 的数据读/写事件,那么 CFNetworking 只是在 BSD 套接字之上添加了不必要的抽象。

网络协议将是自定义二进制协议。即,不基于 HTTP 或任何其他现有协议。

【问题讨论】:

    标签: sockets grand-central-dispatch cfnetwork


    【解决方案1】:

    如果您不需要蜂窝或按需 VPN,那么我真的想不出您必须使用 CFNetwork 的原因,但一位智者曾经告诉我: “使用完成工作的最高级别的抽象。” CFNetwork 是比 BSD 套接字和 GCD dispatch_io 更高级别的 API。

    另一方面,“按照你所知道的去做。”如果您更愿意在 BSD 套接字或 GCD dispatch_io 惯用语中工作,请务必继续前进。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-11
      • 2012-09-20
      • 1970-01-01
      • 2013-11-04
      • 1970-01-01
      • 2014-03-06
      相关资源
      最近更新 更多