5 TCP-IP Steuerelemente
5.1 Allgemeines
Die TCP-IP Steuerelemente ermöglichen den Aufbau einer Netzwerkverbindung
unter Anwendung des TCP-IP-Protokolls zwischen zwei PC-Systemen
oder Mikrocontroller-Anwendungen. Die Steuerelemente bauen auf der
bei Visual Studio™ .net mitgelieferten Socket-Klasse auf.
Implementiert ist ein Steuerelement welches als Client-Socket (=Steuerlement
ClientSocket) und ein Steuerelement welches als Server-Socket (=Steuerelement
ServerSocket) arbeitetet. Sie wurden dahingehend entwickelt, dass
die Anwendung möglichst einfach und rasch implementiert werden
kann.
5.2 Welche Ereignisse stehen zur Verfügung
5.2.1 Ereignisse von ClientSocket
Nr |
Ereignis |
Beschreibung |
0 |
OnConnect |
Wird aufgerufen, wenn versucht wird, eine Verbindung aufzubauen |
1 |
OnConnected |
Wird aufgerufen, wenn eine Verbindung erfolgreich aufgebaut
wurde |
2 |
OnReceive |
Wird aufgerufen, wenn neue Daten zum Auslesen bereitstehen.
Die Daten werden in einem Byte-Puffer übergeben. |
3 |
OnReceiveText |
Wird aufgerufen, wenn neue Daten zum Auslesen bereitstehen.
Die Daten werden als String übergeben. |
4 |
OnSendText |
Wird aufgerufen, wenn eine Zeichenkette an den Empfänger
gesendet wurden |
5 |
OnSend |
Wird aufgerufen, wenn Daten in einem Byte-Puffer an den Empfänger
gesendet wurden |
6 |
OnDisconnect |
Wird aufgerufen, wenn versucht wird, eine Verbindung zu trennen |
7 |
OnDisconnect |
Wird aufgerufen, wenn eine Verbindung erfolgreich getrennt
wurde |
8 |
OnError |
Wird aufgerufen, wenn bei der Kommunikation bzw. bei der Bearbeitung
ein Fehler auftrat. |
9 |
OnConnectionParamsChanged |
Wird aufgerufen, wenn die Verbindungsparameter wie IP-Adresse
oder Portnummer geändert wurden |
Abbildung 5.2: Ereignsisbehandlungsroutinen von
„ClientSocket“
5.2.2 Ereignisse von ServerSocket
Nr |
Ereignis |
Beschreibung |
0 |
OnClientHasConnected |
Wird aufgerufen, wenn zwischen dem Server und einem Client
eine Verbindung aufgebaut wurde |
1 |
OnClientHasDisconnected |
Wird aufgerufen, wenn eine Verbindung zwischen dem Server
und einem Client getrennt wurde |
2 |
OnReceive |
Wird aufgerufen, wenn neue Daten von einem Client zum Auslesen
bereit stehen. Die Daten können aus einem Byte-Puffer
ausgelesen werden. |
3 |
OnReceiveText |
Wird aufgerufen, wenn neue Daten von einem Client zum Auslesen
bereit stehen. Die Daten können als String ausgelesen
werden. |
4 |
OnError |
Wird aufgerufen, wenn bei der Kommunikation bzw. bei der
Bearbeitung ein Fehler auftrat. |
5 |
OnConnectionParamsChanged |
Wird aufgerufen, wenn der Verbindungsparameter Portnummer
geändert wurde |
Abbildung 5.3: Ereignisbehandlungsroutinen von
„ServerSocket”
Zum Senden von Daten stehen bei beiden Steuerelementen die Routinen
SendData, die entweder eine Zeichenkette als String oder einen Byte-Puffer
als zu sendende Daten übernehmen.
5.2.3 Beispielcode für eine TextDataReceived
private void clientSocket1_ReceiveTextDataEvent(string
data, string remoteID)
{
listBox1.Items.Add("Ereignis " + data + "
RemoteID " + remoteID);
} |
Abbildung 5.4: Beispielcode für die Ereignisbehandlungsroutine
„ReceivedTextData“
5.2.4 Beispielcode für das Senden von Daten mit dem SocketClient
Um eine Zeichenkette an einen Server zu senden, verwenden sie einfach
die Routine SendData. Fügen sie ihrem Programmcode dazu die
Programmzeile wie in Abbildung 5.4 dargestellt hinzu.
{
….
…
clientSocket1.SendData(„Hello Server, how are you?“);
…
…
}
Abbildung 5.5: Beispielcode für das Senden
einer Zeichenkette mit Steuerelement „ClientSocket“
Alternativ kann der Routine SendData auch ein Byte-Puffer übergeben
werden.
5.3 Mit wenigen Handgriffen
zu einer TCP-IP-fähigen Anwendung
Von hier aus gelangen sie zu einem Beispiel an dem gezeigt wird,
wie man mit wenigen Handgriffen eine TCP-IP-fähiges Client-Programm
erstellt.
Nachfolgend werden die Schritte beschrieben, wie man mit Hilfe
des Steuerelementes "ClientSocket" in kurzer Zeit eine
Verbindung zu einem anderen Rechnersystem, z.B. einem Tcp-fähigen
Mikrocontroller, der als Tcp-Server arbeitet, aufbaut und Daten
austauscht.
5.3.1 Schritt 1: Neues C#-Projekt anlegen
5.3.2 Schritt 2: TCP-IP Steuerelement einbinden
-
Add Reference
-
Browse Reference
-
Select Reference
-
Click OK
5.3.3 Schritt 3: Steuerelement benutzen
-
ziehen sie das Steuerelement ClientSocket in das leere Formular.
-
legen sie im Eigenschaften-Dialog unter Hostname die IP-Adresse
(z.B. „10.1.1.1“) des PC-Systems fest, mit dem sie
kommunizieren wollen. Legen sie weiter fest über welchen
Port (z.B. 1234) die Kommunikation stattfinden soll.
5.3.4 Schritt 4: Formular designen
-
Fügen sie dem Formular einen Schaltknopf hinzu und benennen
sie ihn „Verbinden“.
-
Fügen sie dem Formular einen Schaltknopf hinzu und benennen
sie ihn „Senden“.
-
Fügen sie dem Formular einen Schaltknopf hinzu und benennen
sie ihn „Verbindung schliessen“.
-
Fügen sie dem Formular eine Listbox hinzu und benennen
sie diese „lboxReceive“.
5.3.5 Schritt 5: Implementierung der Schaltlogik
-
Führen sie auf dem Formular einen Doppelclick auf den
Schaltknopf „Verbinden“ aus und fügen sie die
Codezeilen: clientSocket1.Connect(); hinzu.
-
Führen sie auf dem Formular einen Doppelclick auf den
Schaltknopf „senden“ aus und fügen sie die
Codezeilen: clientSocket1.SendText(„Hallo Welt“);
hinzu.
-
Führen sie auf dem Formular einen Doppelclick auf den
Schaltknopf „verbinden“ aus und fügen sie die
Codezeilen: clientSocket1.Disconnect(); hinzu.
5.3.6 Schritt 6: Implementierung der Ereignisse
-
Wechseln sie im Eigenschaften-Dialog für des TCP-IP Steuerelement
auf das Register Ereignisse. Führen sie einen Doppelclick
auf das Ereignis „OnConnected““ aus und fügen
in die Ereignisroutine die Codezeilen: listBox1.Items.Add(„Host
has successful connected“); clientSocket1.Connect(); hinzu.
-
Wechseln sie im Eigenschaften-Dialog für das TCP-IP Steuerelement
auf das Register Ereignisse. Führen sie einen Doppelclick
auf das Ereignis „OnReceiveTextData““ aus
und fügen in die neue Ereignisroutine die Code¬zeilen:
listBox1.Items.Add(„data received “ + data); hinzu.
-
Wechseln sie im Eigenschaften-Dialog für das TCP-IP Steuerelement
auf das Register Ereignisse. Führen sie einen Doppelclick
auf das Ereignis „OnError““ aus und fügen
in die neue Ereignisroutine die Codezeilen: listBox1.Items.Add(„Error
“ + ErrorStr); hinzu.
5.3.7 Schritt 7: Anwendung testen
Wenn sie alle diese Schritte ausgeführt haben, dann können
sie die Anwendung nun starten. Das Programm präsentiert sich
dabei wie in Abbildung 5.6. Wie einfach ein einfacher Tcp-Client
aussieht, kann anhand dieses Beispielcodes
betrachtet werden. Den Beispielcode für den Socketclient können
sie hier herunterladen.
Im dargestellten Beispiel kommuniziert der Client mit einem im
Netzwerk befindlichen Mikrocontroller. Der Mikrocontroller hat dabei
die IP-Adresse 10.1.1.3. Die Kommunikation erfolgt über das
Port 1111. Nach dem Drücken der "Connect"-Taste erreicht
das Client-Programm das Ereignis "onConnected", welches
signalisiert, dass die Verbindung erfolgreich aufgebaut wurde. Durch
Drücken der Taste "Send "$002" wird die Zeichenkette
"$002" an den Mikrocontroller gesendet. Dieser interpretiert
den Befehl als "GetTime"-Befehl und liefert die aktuelle
Uhrzeit des Mikrocontrollers zurück. Abschliessend wird die
Verbindung geschlossen.
Abbildung 5.6: Einfacher Tcp-Client, der mit einem
Mikrocontroller kommuniziert
Ein detaillierter ausgearbeitetes Beispiel eines Clientprogramms
finden sie hier.
5.4 Was erhalten sie mit dem Kauf des
TCP-IP Steuerelementes?
Mit dem Kauf des TCP-IP Steuerelementes erhalten sie eine dll (Dynamic
Link Library), die sie in die Toolbox der Entwicklungsumgebung von
Visual Studio aufnehmen können. Mit dem TCP-IP Steuerelement
sind sie damit in der Lage auf einfache Weise eine TCP-IP zwischen
zwei PC-Systemen oder Mikrocontroller aufzubauen und Daten als Text
oder im Binärformat zu übertragen. Im Lieferumfang sind
enthalten:
-
Das TCP-IP Steuerelement als dll
-
eine kurze Beschreibung der wesentlichen Routinen sowie
-
wie Beispielanwendungen in denen die wesentlichen Funktionen
und ihre Anwendung demonstriert werden.
Der Kauf berechtigt sie das Steuerelement in ihren Projekten uneingeschränkt
einzusetzen. Eine Lizenz hat Gültigkeit für einen Firmenstandort
(Ort an dem das Unternehmen steht).
5.5 Für wen eignet sich das TCP-IP
Steuerelement besonders?
-
wenn sie noch nicht mit der Netzwerkprogrammierung vertraut
sind
-
für einfache Netzwerk-Projekte bei denen eine „Standard-Kommunikation“
d.h. ausreicht
-
wenn eine TCP-IP Verbindung in sehr kurzer Zeit implementiert
werden soll
5.6 Preis
Für die unter Punkt 5.3 beschriebenen Positionen Euro 45.-.
5.7 Versand
Der Versand erfolgt als downloadbares Archiv im zip-Format. Es
entfallen deshalb keine Versandkosten. Alternativ können sie
auch eine CD anfordern (zusätzlich Euro 5.- innerhalb von Österreich,
Versand ins Ausland nach Aufwand).
|