Datenaustausch mit Ihrer Anwendung
CommView for WiFi bietet ein einfaches TCP/IP-Interface, dass es
Ihnen ermöglicht von CommView for WiFi 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).
So geht das
CommView for WiFi sollte mit dem speziellen Kommandozeilenargument
MIRROR gestartet werden, welches das Programm auffordert,
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 for WiFi 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 for WiFi keine Verbindung erzeugen
kann, versucht das Programm alle 15 Sekunden eine Neuverbindung
herzustellen. Dies geschieht auch bei einem Verbindungsabbruch.
Auch hier versucht CommView for WiFi alle 15 Sekunden eine
Neuverbindung herzustellen. Wenn diese Verbindung erfolgreich
hergestellt wurde sendet CommView for WiFi 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
for WiFi 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 Integer in
Little-endian-Standardreihenfolge), den Datenraten-Index (2 Byte
lange unsignierte Integer in Little-endian-Standardreihenfolge) und
danach das Paket selbst senden. Die Paketlänge sollte nicht die 4
Byte enthalten, die dem Paketkörper vorangehen. Der
Datenraten-Index basiert auf Null; er soll den Raten-Index
enthalten, wie er im
Paketgenerator
angezeigt wird. Beachten Sie das folgende Beispiel:
Der im Hex gesendete String: D4 00 00 00 80 1F 02 66 C2 8E. Die
Länge dieses Strings ist 10 Byte.
Die benutzte Rate: 5,5 Mbit/s. Es ist das dritte Element in der
Drop-down-Liste "802.11-Datenrate" im
Packetgenerator.
Der daraus resultierende zu sendende Puffer lautet:
0A 00 02 00 D4 00 00 00 80 1F 02 66 C2 8E.
Wenn der Adapter nicht geöffnet wurde oder keine Paketinjektion
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/commwifi/samp_mirr_c7.zip.
Dies ist ein Visual Studio Projekt mit C++ Quellcode.
·http://www.tamos.com/products/commwifi/samp_mirr_d7.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 for WiFi und dem
Ziel der Spiegelung schnell genug ist, um die empfangenen Daten zu
transportieren. Wenn CommView for WiFi 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.
|