由于我不愿意进入的原因(与我无法更改的第三方库兼容),我需要使用TCP套接字在iOS中的单个进程中执行IPC。
为了防止其他进程与我的TCP IPC套接字通信,我想通过操作系统验证调用connect()
(来自另一个线程)的进程与我自己的PID相同。
在OS X上,我注意到netstat
没有此信息(与Windows和Linux等其他操作系统不同),我能够确定此信息的唯一方法是使用lsof
。我不确定iOS沙箱中可用的是什么,但到目前为止,似乎我最好的选择(尽管看起来很昂贵)是弄明白lsof
正在做什么并尝试复制它。
有没有人知道我可以使用系统调用来检查这个?我已阅读getsockopt(2)
并且看不到任何适用的内容,但我找不到有关支持ioctl(2)
次呼叫的文档。
这里有什么可能?
答案 0 :(得分:1)
getpeername
应与发送端的getsockname
匹配。您可以尝试将其与本地进程中的所有打开的fds进行匹配。