我想知道如何在iOS 7的iOS上进行应用间通信。我突然想到,如果我是前台应用程序,我可以绑定到套接字并充当服务器,如果我是后台应用程序(并且具有音频等后台权限),那么我可以连接到服务器。因此,在我看来,通过在两个应用程序之间商定一个端口并简单地根据它是否在前台来切换哪个应用程序绑定到一个端口,就可以进行应用程序间通信。
问题是,我似乎永远不能从后台连接到localhost,例如,我在循环中使用了以下代码:
truct addrinfo *server_address;
int ret = getaddrinfo("localhost", "1666", NULL, &server_address);
int connection_id = connect(self.socketHandle, server_address->ai_addr, server_address->ai_addrlen);
并且connection_id始终为-1。我不确定为什么我不能连接,因为绑定过程没有抛出任何错误。
发布于 2015-08-25 15:41:49
检查这个答案:iOS - Is it possible to communicate between apps via localhost?
此外,请记住,当其他应用程序进入前台时,请确保您的后台应用程序没有停止(默认情况下,该应用程序将停止)
但总的来说,我不认为这是进行应用间通信的好方法: iOS的“精神”是通常只有一个应用在前台运行。那么,为什么你需要与后台应用程序通信呢?我非常肯定你可以找到更好的方法来实现你的结果。
https://stackoverflow.com/questions/32197190
复制相似问题