查找已连接的 Unix Domain Socket 的 PID
Posted
技术标签:
【中文标题】查找已连接的 Unix Domain Socket 的 PID【英文标题】:Find PID of the connected Unix Domain Socket 【发布时间】:2021-06-14 13:39:48 【问题描述】:我在 Mac OS 中使用文件套接字在 python 中编写了简单的客户端服务器程序。我想知道来自服务器的已连接客户端套接字的进程 ID。我在 linux 中实现了,但我找不到任何适用于 Mac OS 的方法。
【问题讨论】:
假设您可以访问运行客户端的线程或进程,您可以在该线程或进程中调用os.getpid()
。如果你不这样做,你应该在你的问题中指定这一点。
@Mr.Zeus os.getpid() 仅获取当前进程 ID。
【参考方案1】:
基于this Golang issue实现同样的事情,你可以这样做
sock, addr = server.accept()
other_pid = sock.getsockopt(0, 2)
其中0
对应于SOL_LOCAL
,2
对应于LOCAL_PEERPID
。
我刚刚试了一下——在我的 Mac 上运行良好。
【讨论】:
以上是关于查找已连接的 Unix Domain Socket 的 PID的主要内容,如果未能解决你的问题,请参考以下文章
检测无连接的 Unix Domain Socket 是不是没有接收器
每天看点源码 peertalk —— 一种基于 Unix Domain Socket 的 RPC 方法
#yyds干货盘点#网络协议之:socket协议详解之Unix domain Socket