CommView bietet ein einfaches TCP/IP-Interface, dass es Ihnen
ermöglicht von CommView empfangene Pakete zu verarbeiten, während
Sie gleichzeitig Ihre eigene Applikation in Echtzeit verwenden. Ab
Version 5.0 können Sie mit diesem Interface auch Pakete senden
(analog zur Paketgeneratorfunktion in CommView).
Nehmen Sie zur Kenntnis, dass sich das Datenformat im Vergleich zu
älteren CommView-Versionen wesentlich verändert hat. Der
TS-Schalter wurde aufgehoben da alle Paketinformationen inklusive
dem Zeitstempel nun im Header enthalten sind.
So geht das
CommView sollte mit dem speziellen Kommandozeilenargument MIRROR
gestartet werden. Dieses fordert das Programm auf empfangene Pakete
an eine bestimmte IP-Adresse und einen TCP-Port Ihrer Wahl zu
spiegeln.
Beispiele:
CV.EXE mirror:127.0.0.1:5555 // spiegelt die Pakete in die
Loopbackadresse, TCP Port 5555
CV.EXE mirror:192.169.0.2:10200 // spiegelt die Pakete nach
192.169.0.2, TCP Port 10200
Wenn CommView mit einem solchen Schalter gestartet wurde, versucht
es eine TCP-Session durch Verbinden zu der definierten IP- Adresse
bzw. Portnummer zu generieren. Das bedeutet, dass Sie bereits die
Anwendung laufen lassen und einen bestimmten Port abhören lassen.
Wenn CommView keine Verbindung erzeugen kann, versucht das Programm
alle 15 Sekunden eine Neuverbindung herzustellen. Dies geschieht
auch bei einem Verbindungsabbruch. Auch hier versucht CommView alle
15 Sekunden eine Neuverbindung herzustellen. Wenn diese Verbindung
erfolgreich hergestellt wurde sendet CommView die gesammelten
Pakete in Echtzeit zu dieser definierten IP-Adresse.
Daten Format
Die Daten werden im NCF-Format übertragen. Mehr dazu unter
CommView
Logdateiformat.
Senden von Paketen
Pakete können von Ihrer Anwendung nicht nur empfangen, sondern auch
mittels des Paketgenerators gesendet werden. Dabei sendet CommView
die Daten über dieselbe TCP-Verbindung, über die Sie auch die Daten
erhalten. Das Datenformat ist einfach. Sie sollten die Paketlänge
(2 Byte lange unsignierte Interger in little-edian
Standardreihenfolge) und danach das Paket selbst senden. Wenn der
Adapter nicht geöffnet wurde oder keine Paketinjection erlaubt,
wird das Paket ohne Hinweis verworfen.
Beispielprojekte
Zwei einfache Demoanwendungen, die auf eingehende Verbindungen
hören extrahieren Pakete aus dem Stream und zeigen sofern vorhanden
die Rohdaten.
·http://www.tamos.com/products/commview/samp_mirr_c5.zip.
Dies ist ein Visual Studio Projekt mit C++ Quellcode.
·http://www.tamos.com/products/commview/samp_mirr_d5.zip:
Dies ist ein Delphi-Project mit Pascal Sourcecode. Wenn Sie das
Projekt kompilieren wollen benötigen Sie die bekannten
ICS-Komponentensuite von Francois Piette, erhältlich unter
http://www.overbyte.be.
Bandbreite
Wenn Sie Daten auf einem entfernten Computer spiegeln, sollten Sie
sicherstellen, dass der Link zwischen CommView und dem Ziel der
Spiegelung schnell genug ist, um die empfangenen Daten zu
transportieren. Wenn CommView 500 KBytes/sec empfängt und Ihr Link
nur 50 KBytes/sec versenden kann, werden Sie zwangsläufig einen
Datenstau bekommen, der verschiedene Probleme erzeugen kann. Z. B.
könnte Winsock bei einigen Windowsversionen aufhören Daten zu
senden. Wenn Sie in diesem Zusammenhang eine flexibelere Lösung
suchen, sie Smart Buffering und Remote Control unterstützt, sollten
Sie die Verwendung des
CommView Remote
Agent
in Betracht ziehen.
|