Netzwerk Performance mit Programm messen
-
Hi
ich bin grad dabei ein kleines Netzwerkprogramm zu schreiben und habe bereits einen funktionierenden Client und Server. Jedoch würde ich nun auch gerne messen, wie schnell und wieviele Daten ich zum Server rüberschiebe. Das soll mir dann auch angezeigt werden.
Weiß jemand wie ich das mit C++ machen kann? Ich arbeite unter Linux, möchte jedoch nicht die Linuxprogs zur Messung nutzen.
Geht das vielleicht mit Boost?
Danke schonmals für die Antworten!
Pascal
-
Wenn du mit write() Daten auf den Socket schreibst, dann bekommst du doch von write() die Anzahl der geschrieben Bytes zurück. Genau so bei read(). Jetzt kannst du dir doch zumindest eine ganz einfache Methode zum summieren der gesendeten/gelesenen Datenpackete schreiben. Und für die Zeitmessung kannst du doch deinen Client und Server so ausbauen, dass dir jeweils der Empfänger noch ein ganz kleines Anwortpacket schickt. Damit läßt sich auch eine Zeitmessung realisieren.
-
Und zum Testen einmal große Pakete und einmal viele kleine durch die Leitung prügeln.
-
ja vielen dank! nur meine Idee war es, irgendwie auf die Hardwarestruktur der Netzwerkkarte zuzugreifen. Wie bei Linux mit ifconfig eth0. Da bekommt man auch alles angezeigt, nur weiß ich nciht welche Register etc. ausgelesen werden.
Trotzdem schonmal danke für die Antworten!
-
Raven761 schrieb:
ja vielen dank! nur meine Idee war es, irgendwie auf die Hardwarestruktur der Netzwerkkarte zuzugreifen. Wie bei Linux mit ifconfig eth0. Da bekommt man auch alles angezeigt, nur weiß ich nciht welche Register etc. ausgelesen werden.
Trotzdem schonmal danke für die Antworten!
Du kannst dir natürlich auch den Code von vnstat angucken. Dort wirst du sicher fündig: http://humdi.net/vnstat/