2010-07-23 21 views
14

Soket bilgilerini /proc/net/tcp'dan ayrıştırmaya çalışıyorum ve bellek adresleri veya kuyruk kullanımı gibi bazı alanları tanımlayabilirim, ancak her girdinin yuva tanımlayıcısına nasıl bağlandığını bulamıyorum. örneğin bu verilerle:Her açılmış sokete her/proc/net/tcp girişini nasıl eşleştirebilirim?

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

Ben resme ilişkin soket açıklayıcısı olduğunu bilmek istiyorum.

+0

Sahip olma işlemi için dosya tanıtıcı numarası mı, yoksa belirli bir yuvaya sahip olan işlemi öğrenmek mi istiyorsunuz? –

+0

Evet, dosya tanıtıcısı. –

+0

@MattJoiner - Merhaba Matt, Belirli bir soketin sahibi olan süreci nasıl bilebilirim? – Suman

cevap

13

(bu durumda, 507.218 olarak) inode numarasını alın. o sokete Her dosya tanıtıcı (aynı soket için birden çok dosya tanımlayıcıları olabilir) formunun bir bağlantı şeklinde görülecektir:

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

(<PID> işlem kimliği ve <N> dosya tanımlayıcı olduğu).

+0

Harika! Çok teşekkür ederim! –