Läsa ut nätverksanvändning i Cocoa-app?

Tråden skapades och har fått 2 svar. Det senaste inlägget skrevs .
1

Hej!

Jag är ny på programmering till Mac, men håller på att lära mig Objective C / Cocoa-programmering. Jag hade en idé jag ville testa, och för det behöver jag läsa ut info om data som skickas in/ut över nätverket. Helst vill jag göra detta _PER PROCESS_ - dvs kunna fråga OS:et om nätverksstatistik för specifika process-id:n. Första frågan är väl; Går det?

Jag har kikat lite på IOKit, men där får jag känslan att jag bara kan få ut data för en device. Man verkar även kunna sniffa packets med libpcap, men då verkar problemet å andra sidan vara att man inte kan härleda det till vilken process den hör till (ifall man inte kollar varje enskilt pakets in/ut-port och läser av vilken process varje öppen port hör till, men det kändes som en knöligt lösning).

Jag har bara kollat lite på detta som snabbast, men tänkte att jag kanske kunde spara lite surf-tid genom att fråga alla gurus här ifall någon vet hur man bär sig åt All hjälp uppskattas!

  • Medlem
  • Sollentuna
  • 2011-08-31 08:26

Rent generellt så har inte *NIX (där Mac OS X via FreeBSD-arvet hör) någon per-process-accounting annat än minne och cpu. Nätverksporten är som du upptäckt ett fristående objekt som delas av alla. Du hittar bara den ackumulerade användningen. Om nu inte Mac OS X har gjort något tillägg i ett eget ramverk förstås. Men jag hittar inget på Apples utvecklarweb.

Nej, jag har sökt lite mer nu på morgonen också, och det verkar otroligt knöligt att lösa detta tyvärr. OS X har ingen /proc-mapp mountad (där man kan läsa ut systeminfo enkelt via filstruktur) heller tyvärr. Kikade lite på sysctl, där verkar det gå få ut nätstatistik, men återigen bara för systemet som helhet. Att sniffa paket GÅR ju visserligen, men jag har inte hittat något bra sätt att koppla öppna portar till specifika apps heller, så det är lite svårt att veta vilka paket som ska sorteras var.. Det var lite knöligt första projekt detta, kanske får tänka om lite Men har någon fler förslag på hur detta kan gå lösa, säg gärna till! Det GÅR ju uppenbarligen då det finns per-process-statistik i vissa apps.

1
Bevaka tråden