2012-03-28 2 views
0

Je souhaite que mon application puisse contrôler la quantité de données (je n'ai pas besoin des paquets réels, seulement la quantité d'octets) qui sort de l'ordinateur (sur une seule interface)) à tout moment, et aussi au fil du temps. En d'autres termes; Je veux être en mesure d'afficher un nombre affichant la vitesse actuelle et descendante (par exemple 5kB/s) ainsi qu'un graphique sur les 5 dernières minutes, et enfin je veux aussi être en mesure de montrer une quantité correcte de données qui a sorti/de l'interface dans la dernière heure.Mesure du trafic réseau en C#

Est-ce faisable d'une manière simple? Cela ne me dérange pas d'utiliser des assemblages tiers, ou d'avoir à écrire mon propre wrapper autour de certaines API de win32; les assemblages de tierces parties doivent pouvoir être utilisés avec des applications open source et ne doivent pas coûter de l'argent.

Répondre

2

En fait, vous pouvez facilement obtenir tout le trafic réseau en utilisant des compteurs de performance, mais je ne connais aucun moyen de mesurer le trafic réseau de votre application que d'ouvrir chaque paquet et de le lire. Pour mesurer tout le trafic réseau, se reporter à: network traffic in c#

1

Quelque chose comme DUMeter?

Regardez here .

+0

juste tryed. C'est sympa et avec la source aussi. Merci. – radbyx

0

Vous pouvez consulter les compteurs de performance.

Screen shot from perfmon

Sur la plupart de ces compteurs réseau, vous pouvez choisir l'interface réseau qui est à surveiller. Vous pouvez faire la même chose avec le code .Net.

est ici un article CodeProject qui contient une application de formulaires qui fait essentiellement ce que vous êtes après: http://www.codeproject.com/Articles/6259/Monitoring-network-speed

+0

Certains [compteurs] pertinents (http://technet.microsoft.com/en-us/library/cc768048.aspx#XSLTsection133121120120) – oleksii

Questions connexes