由于我不想涉及的原因(与无法更改的第三方库的兼容性),我需要使用TCP套接字在iOS中的单个进程中执行IPC。如何确定同一个iOS设备上的对等TCP连接的PID?
为了防止其他进程与我的TCP IPC套接字交谈,我想向操作系统证明,调用connect()
(来自另一个线程)的进程与我自己的PID具有相同的PID。
在OS X上,我注意到netstat
没有这个信息(与Windows和Linux等其他操作系统不同),我唯一能够确定这些信息的方法是使用lsof
。我不确定iOS沙盒中有什么可用,但到目前为止,似乎我最好的选择(尽管它看起来很昂贵)是找出lsof
正在做什么并尝试复制它。
有谁知道系统调用我可以用来检查这个吗?我已阅读getsockopt(2)
,但没有看到任何适用的内容,并且我找不到有关支持哪些ioctl(2)
调用的文档。
这里有什么可能?
有没有办法使用套接字API做到这一点。你不能使用'pipe(2)'而不是创建一个套接字吗? –
'socketpair(2)'或'unix(7)'可能比'pipe(2)'更合适,因为它们实际上就像套接字一样。 – ephemient
是的,如果您绝对需要tcp开销,则为true。 –