TCP-/IP Kommunikation testen per MessageCommunicator

Dieses Projekt ist aus der Idee entstanden, ein Set an Klassen für einen einfachen TCP/IP basierten Nachrichtenaustausch mit den neusten Mitteln des .Net Frameworks zu machen. Hierbei werden verschiedene Formate dieser Nachrichten unterstützt, z. B. Erkennung einer Nachricht auf Basis eines Ende-Kennzeichens oder einer festen Länge. Ursprünglich ganz ohne GUI gedacht, habe ich dann doch eine auf dem Framework Avalonia basierte Oberfläche erstellt. Somit kann das Programm nicht nur auf Windows, sondern auch auf Linux oder MacOS laufen. Der Quellcode befindet sich hier auf Github und steht unter der freizügigen MIT-Lizenz.

Wesentliche Funktionen

Die jeweils aktuelle Version des Programms kann direkt vom Github-Projekt [1] aus runtergeladen werden. Es ist so gestaltet, dass am Zielsystem keine Installation notwendig ist. Unter der Haube ist es mit .Net Core (bzw. bald .Net 5) umgesetzt und erzeugt im publish Script eine ausführbare Datei je Betriebssystem und enthält dabei alle notwendigen Abhängigkeiten (inkl. dem Framework).

Von den Funktionen her hätte ich mich auf folgende Themen fokussiert:

  • Unterstützung Passiv/Aktiv: Warten auf Verbindungsanfrage von außen auf bestimmten Port / Aufbau einer Verbindung zu einer fremden IP-Adresse und Port
  • Einzelne Verbindung: Trifft eine neue Verbindungsanfrage an einem Port ein, so wird die vorherige als ungültig erklärt
  • Timeouts: Trifft über eine gewisse Zeitspanne keine Nachricht von der Gegenseite ein, so wird die Verbindung automatisch abgebaut und ein neuer Verbindungsaufbau versucht
  • Flexible Nachrichtenerkennung: Die Logik zur Erkennung einer Nachricht kann flexibel konfiguriert werden. Z. B. Erkennung einer Nachricht auf Basis eines Ende-Kennzeichens oder einer festen Länge.
  • Automatischer Reconnect: Sobald ein Verbindungsprofil gestartet wurde, kümmert es sich automatisch um den Verbindungsaufbau und um ggf. notwendige reconnects.

In Summe handelt es sich um ein Programm, mit dem es relativ einfach möglich ist, einfache nachrichtenbasierte TCP-/IP Protokolle mit anderen Programmen oder Hardware-Geräten zu testen. Hier noch ein paar Screenshots:

Verwalten mehrerer Verbindungsprofile
Einstellungen zu einem Verbindungsprofil

Bibliothek

Neben der GUI existiert ebenso ein Nuget-Packet [2], welche obige Logik in Form einer .Net Bibliothek bündelt. Derzeit ist es verfügbar für .Net Standard 2.0 und .Net Standard 2.1. Die API ist in kurzen Sätzen direkt auf der Github-Seite beschrieben.

Verweise:
[1] = https://github.com/RolandKoenig/MessageCommunicator
[2] = https://www.nuget.org/packages/MessageCommunicator

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.