AsyncTcpClient & AsyncTcpListener

Eine asynchrone Variante von TcpClient und TcpListener für .NET Standard. Erlaubt die Umsetzung von TCP-Clients oder -Servern mit wenigen Callback-Methoden.

Asynchrone Lösungen mit TcpClient und TcpListener umzusetzen ist kompliziert und es schleichen sich leicht Fehler ein oder wichtige Funktionen fehlen. Diese Klassen bieten eine einfache Lösung für diese Aufgabe. Das Schreiben von asynchronen TCP/IP-Clients und -Servern mit diesen Klassen erfordert nur die Programmierung einfacher Callback-Funktionen. Alternativ kannst du die Verbindungslogik auch in abgeleiteten Klassen umsetzen. In jedem Fall musst du nur die empfangenen Daten aus einem Puffer lesen und Daten zurücksenden. Sämtliche Socket- und Stream-Interaktionen sind gekapselt.

Dieser Code enthält auch einen asynchronen Byte-Puffer, der alle empfangenen Bytes speichert sowie sie eintreffen. Anwendungen können dann so viele Bytes daraus abrufen, wie sie benötigen, ohne zusätzliche empfangene Daten zu verwerfen. Die Dequeue-Funktion liefert bis zu der verfügbaren Anzahl Bytes, wenn synchron aufgerufen, oder genau die geforderte Anzahl, wenn asynchron aufgerufen. Die Async-Methode kann auch abgebrochen werden. Dadurch blockiert der Code niemals ohne Abbruchmöglichkeit.

Ein vollständiges Beispiel beider Nutzungsstile ist in der Anwendung im Repository enthalten. Du findest es in der Datei Program.cs.

Bitte lies die erweiterte Beschreibung mit Beispielen auf der Repository-Seite.

Kompatibilität: .NET Ab Version 4.6 .NET Standard Ab Version 2.0

Download

master.zipAktueller Quelltext direkt von GitHub

Es gibt ein öffentliches Git-Repository von AsyncTcpClient bei GitHub. Dort sind auch Änderungen am Code dokumentiert.

Lizenz und Nutzungsbedingungen

Vervielfältigung und Weiterverbreitung dieser Datei, verändert oder unverändert, sind gestattet, vorausgesetzt die Urheberrechtsangabe und dieser Hinweis bleiben erhalten. Diese Datei wird wie vorliegend ohne jegliche Garantie oder Gewährleistung angeboten. (GNU All-Permissive-Lizenz)

Statistische Daten

  • Erstellt am 2018-08-03, aktualisiert am 2018-08-04.
  • Ca. 600 Codezeilen, geschätzte Ent­wick­lungs­kos­ten: 600 - 2 400 €