如何将每个 /proc/net/tcp 条目与每个打开的套接字匹配?
Posted
技术标签:
【中文标题】如何将每个 /proc/net/tcp 条目与每个打开的套接字匹配?【英文标题】:How can i match each /proc/net/tcp entry to each opened socket? 【发布时间】:2011-03-20 04:06:05 【问题描述】:我正在尝试从/proc/net/tcp
解析套接字信息,虽然我可以识别一些字段,例如内存地址或发送队列使用,但我无法找到每个条目如何绑定到其套接字描述符。例如,使用此数据:
1: 5922140A:E459 D5C43B45:0050 01 00000000:00000000 00:00000000 00000000 1000 0 507218 1 f6ab1300 57 3 12 4 -1
我想知道对应的套接字描述符是哪个。
【问题讨论】:
你的意思是拥有进程的文件描述符编号,还是你想知道拥有给定套接字的进程? @MattJoiner - 嗨,Matt,如何知道拥有给定套接字的进程? 【参考方案1】:获取 inode 编号(在本例中为 507218)。该套接字的每个打开的文件描述符(同一个套接字可能有多个文件描述符)将显示为以下形式的链接:
/proc/<PID>/fd/<N> -> socket[507218]
(其中<PID>
是进程ID,<N>
是文件描述符)。
【讨论】:
【参考方案2】:取决于架构如何格式化 /proc,但在 Linux 上:
http://linuxdevcenter.com/pub/a/linux/2000/11/16/LinuxAdmin.html
【讨论】:
以上是关于如何将每个 /proc/net/tcp 条目与每个打开的套接字匹配?的主要内容,如果未能解决你的问题,请参考以下文章