2010-07-23 14 views
14

J'essaie d'analyser les informations de socket à partir de /proc/net/tcp et même si je peux identifier certains champs, tels que les adresses de mémoire ou l'utilisation de la file d'attente, je ne trouve pas comment chaque entrée est liée à son descripteur de socket. par exemple, avec ces données:Comment puis-je faire correspondre chaque entrée/proc/net/tcp à chaque socket ouverte?

1: 5922140A:E459 D5C43B45:0050 01 00000000:00000000 00:00000000 00000000 1000  0 507218 1 f6ab1300 57 3 12 4 -1 

Je veux savoir quel est le descripteur de socket correspondant.

+0

Voulez-vous dire le numéro de descripteur de fichier pour le processus propriétaire, ou voulez-vous connaître le processus qui possède un socket donné? –

+0

Oui, le descripteur de fichier. –

+0

@MattJoiner - Bonjour Matt, Comment connaître le processus qui possède une socket donnée? – Suman

Répondre

13

Prenez le inode (dans ce cas, 507218). Chaque descripteur de fichier ouvert pour que la prise (il peut y avoir des descripteurs de fichiers multiples pour le même socket) apparaîtra comme un lien de la forme:

/proc/<PID>/fd/<N> -> socket[507218] 

(où <PID> est l'ID de processus et <N> est le descripteur de fichier).

+0

Super! Merci beaucoup! –