如何确定同一iOS设备上对等TCP连接的PID?

由于我不愿意进入的原因(与我无法更改的第三方库的兼容性),我需要使用TCP套接字在iOS中的单个进程中执行IPC。

为了防止其他进程与我的TCP IPC套接字通信,我想通过操作系统validation调用connect() (来自另一个线程)的进程具有与我自己相同的PID。

在操作系统XI上注意到netstat没有这些信息(与其他操作系统,如Windows和Linux不同),我能够确定此信息的唯一方法是使用lsof 。 我不确定iOS沙箱中可用的是什么,但到目前为止,似乎我最好的选择(尽管看起来很昂贵)是要弄清楚lsof正在做什么并尝试复制它。

有谁知道我可以使用系统调用来检查这个? 我已经阅读过getsockopt(2)并且没有看到任何适用的内容,我找不到有关支持ioctl(2)调用的文档。

这可能是什么?

哇,这对于进程内库来说听起来像是一个糟糕的API。

接收端的getpeername应匹配发送端的getsockname 。 您可以尝试将其与本地进程中的所有打开的fds进行匹配。