【问题标题】:Can iOS apps communicate via sockets?iOS 应用程序可以通过套接字进行通信吗?
【发布时间】:2015-03-04 14:54:01
【问题描述】:

我打算为 iOS 开发一些应用程序。它们可以通过套接字相互通信吗?假设一个应用程序作为服务器运行(即使在后台模式下),另一个作为客户端连接到服务器应用程序并执行一些通信。它是否违反任何 App Store 规则?如果我的想法由于某种原因不起作用,iOS 中是否有可用的 IPC?

【问题讨论】:

    标签: ios sockets app-store ipc


    【解决方案1】:

    当然可以,而且不违反任何规则。

    只是 CoreFoundation 库。

    如果苹果官方文档中已经全部写了,我向你描述它是没有意义的:

    https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/NetworkingTopics/Articles/UsingSocketsandSocketStreams.html

    您可以在此处找到示例、所有方法和您可以做和不能做的事情。

    编辑:

    您没有说清楚,但您似乎希望这些应用程序在同一设备上运行。您可以这样做,但这意味着一个应用程序必须在后台运行,并且要做到这一点,您需要某种技巧(例如:后台更新位置模式打开)并且不会通过苹果商店。您需要一个很好的理由让您的应用在后台运行(后台音乐、在后台更新健身应用的位置等)

    另外,这是一个重复的问题:

    iOS - Is it possible to communicate between apps via localhost?

    【讨论】:

    • 只是为了更详细(虽然我期待答案):“iOS 应用程序在同一设备上运行?”
    • 我不明白。您希望应用在同一台设备上吗?
    • 是在同一台设备上,一台作为服务器,一台作为客户端
    • 在 iOS 中监听套接字有一些注意事项,诀窍是及时关闭它们,见forums.developer.apple.com/thread/85038#253216
    【解决方案2】:

    只要您的应用在同一个应用组中,就可以,允许使用套接字 IPC。如果没有,那么没有。套接字映射到文件描述符(伯克利套接字),这些文件被沙箱化到应用程序或应用程序组。更多信息:http://ddeville.me/2015/02/interprocess-communication-on-ios-with-berkeley-sockets

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-09
      • 2020-06-16
      • 1970-01-01
      • 2014-05-17
      • 1970-01-01
      • 1970-01-01
      • 2018-10-22
      • 2011-12-01
      相关资源
      最近更新 更多