TCP-Socketprogrammierung


Sockets werden für Verbindung über Netzwerk verwendet. Socketverbindungen sind plattformunabhängig und können mit Sockets anderer Programmiersprachen kommunizieren.


Vorbereitung

Zuerst müssen die Sockets- und die IO-Namespace importiert werden.
Hieraus werden der Writer, Reader und der TcpClient erstellt.
Der TcpClient ist für den Verbindungsauf- und abbau zuständig, wobei der StreamWriter zum Versenden der Daten und der StreamReader für den Empfang der Daten zuständig ist.




Senden

Um eine Nachricht zu senden wird das StreamWriter-Objekt genutzt. Mit der Methode Write() wird in den bereits übergebenen Stream des Sockets TcpClient geschrieben.
Mit FLush() wird der Writer wieder geleert.




Empfangen

Um Daten zu empfangen wird von mir in diesem Fall ein BackgroundWorker genutzt. Der BackgroundWorker eignet sich hierfür, da er asynchron ausgeführt werden kann.
Demnach kann allerdings auch ein zweiter Thread erstellt werden, der die Daten empfangen soll.
Der BackgroundWorker kann einfach von der Toolbox auf den Designer gezogen werden. In DoWork() wird immer eine Zeile des Reader-Objektes in einen String geschrieben in dem die empfangenen Daten stehen. Sobald die DoWork-Methode durchlaufen wurde, wird die RunWorkerCompleted Sub aufgerufen, in welcher die empfangenen Daten verarbeitet werden können. Am Ende dieser Sub wird der Worker wieder asynchron gestartet.