I'm trying to parse socket info from /proc/net/tcp
and while I can identify some fields, such as memory addresses or send queue use, I can't find how each entry is bound to its socket descriptor. e.g., with this data:
1: 5922140A:E459 D5C43B45:0050 01 00000000:00000000 00:00000000 00000000 1000 0 507218 1 f6ab1300 57 3 12 4 -1
I want to know which is the correspondant socket descriptor.
Take the inode number (in this case, 507218). Each open file descriptor to that socket (there may be multiple file descriptors for the same socket) will appear as a link of the form:
/proc/<PID>/fd/<N> -> socket[507218]
(where <PID>
is the process ID and <N>
is the file descriptor).
Depends on the architecture as to how /proc can be formatted, but on Linux:
http://linuxdevcenter.com/pub/a/linux/2000/11/16/LinuxAdmin.html