由於我不想涉及的原因(與無法更改的第三方庫的兼容性),我需要使用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。 –