Я разработал утилиту для мониторинга пропускной способности сети (для TCP/UDP/IP) nettop, и для того, чтобы связать пакеты, захваченные с Libpcap их соответствующих процессов, я в основном сканировать виртуальную файловую систему /proc/net/(tcp|udp)(6)
и /proc/<pid>/fd
,Как связать сокеты с PID в Linux?
Есть ли более эффективный способ сделать это?
Cheers, Эма
Я думаю, что нет лучшего и более эффективного способа. –
Вы уверены, что хотите на карте сокеты? Интересно, как я не вижу, как libpcap вернет вам сокеты (такие же дескрипторы сокетов, что и дескрипторы файла процесса). Возможно, вы имеете в виду «порты»? – alk
@alk вы заканчиваете сопоставление _socket: [....] _ дескриптор файла, поэтому вы также сопоставляете порты с libpcap, но затем для привязки к процессу вам нужно сопоставить порт сокетом и сокетом с pid. Таким образом, есть два уровня косвенности, которые я считаю, и сокет-сопоставление. – Emanuele