我在我的一个项目中使用库 GCDWebServer( https://github.com/swisspol/GCDWebServer ),出于安全原因,这要求我接受仅来自我的应用程序进程的连接。我希望这是 iOS 应用程序沙箱开箱即用的东西,但事实并非如此。沙盒似乎是通过文件系统权限对 UNIX 域套接字 (AF_UNIX) 实施的。但是对于 GCDWebServer 使用的 TCP/IP 套接字(AF_INET),似乎没有沙盒。
我能够编写两个示例应用程序——一个客户端和一个服务器(使用不同的开发人员证书签名),并且可以让它们相互通信,没有任何问题。
我想知道是否有某种方法可以在 iOS 上执行相同的操作,本质上是在 TCP 套接字上启动 HTTP 服务器,但只接受来自同一进程的连接。我不能使用 UNIX 域套接字,因为要从 HTTP 服务器请求内容的客户端是 AVPlayer,它不知道如何连接到我的应用程序的 UNIX 域套接字。