EasyTCPLib 1.0.0.2

    • Beta

    Es gibt 81 Antworten in diesem Thema. Der letzte Beitrag () ist von TiTo.

      EasyTCPLib 1.0.0.2

      Hallo,

      wolltet ihr schonmal ein Internet/Netzwerkbasiertes Programm erstellen habt euch aber nicht an TCP/IP herangewagt? Hat irgendwas nicht geklappt, oder sucht ihr einfach eine komfortable Lib die euch Arbeit abnimmt? Dann ist meine EasyTCPLib das richtige:



      War einiges an Arbeit. Wie man sieht, ist die Lib nicht gerade funktionsarm, aber lasst euch nicht abschrecken: Einfacher kann man mit TCP/IP nicht arbeiten.

      Beschreibung

      Die Klasse stellt zuerst einmal einen gewöhnlichen TCP-Client, -Server und -MultiServer bereit, sodass ihr das meiste selbst coden könnt. Sie nehmen euch nur die grundlegenden Sachen ab.

      Zusätzlich habe ich aber den Managed-Namespace in dieser Lib entwickelt - dieser enthält die Klassen ManagedClient, ManagedServer und ManagedMultiServer - diese sind sehr komfortabel und besonders einfach zu nutzen. Es gibt vorgefertigte Methoden zum Senden und Empfangen von Zeichenfolgen, Bildern, Binärdaten und anderen Objekten (insofern serialisierbar), alle Events werden bereitgestellt usw.

      Wichtig: Ihr müsst euch für eine Seite entscheiden - entweder beide Seiten Managed oder keine.

      Beispiel

      VB.NET-Quellcode

      1. Imports EasyTCPLib
      2. Public Class someFrm
      3. Private WithEvents server As New Managed.ManagedServer(Net.IPAddress.Any, 8000) ' neuen server erstellen
      4. Private WithEvents cl As New Managed.ManagedClient ' neuen client erstellen
      5. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      6. server.Start() ' server starten
      7. server.WaitForClientAsync() ' asynchron auf den client warten.
      8. ' server.StopExecution()
      9. cl.Connect("127.0.0.1", 8000) ' client verbindet -> server
      10. End Sub
      11. Private Sub server_ConnectionLost(ByVal sender As Object) Handles server.ConnectionLost
      12. MsgBox("verbindung wurde geschlossen") ' verbindung wurde geschlossen
      13. End Sub
      14. Private Sub server_WaitForClientCompleted(ByVal sender As Object) Handles server.WaitForClientCompleted
      15. ' verbindung angekommen. "testnachricht" von server an client senden
      16. server.Send("testnachricht")
      17. End Sub
      18. Private Sub cl_DataReceived(ByVal sender As Object, ByVal e As EasyTCPLib.Managed.DataReceivedArgs) Handles cl.DataReceived
      19. MsgBox(e.Value) ' nachricht vom server empfangen: "testnachricht"
      20. cl.Disconnect() ' verbindung danach schließen
      21. End Sub
      22. End Class


      Mergen, Namensnennung, Dekompilierung

      Mergen ("einkompilieren") ist untersagt. Namensnennung ist nötig. Dekompilierung ist verboten.

      Download

      Hier (ZIP, 59 Kb)

      Hinweis

      Die Lib befindet sich im Beta-Status. Bitte alle Probleme, Auffälligkeiten usw. melden. Empfehlung also: Falls ihr die Lib nutzt, regelmäßig hier auf eine neue Versionen prüfen.

      Viel Spaß damit,

      LG

      Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „kevin89“ ()

      Gib mir mehr nützliche Libs!
      -> sieht nützlich aus ;)

      Edit: Wie machst du eigt. immer diese netten Bilder?

      Gruß
      To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

      At some point in time, you recognize that knowing more does not necessarily make you more happy.

      kevin89 schrieb:

      Zusätzlich habe ich aber den Managed-Namespace in dieser Lib entwickelt - dieser enthält die Klassen ManagedClient, ManagedServer und ManagedMultiServer - diese sind sehr komfortabel und besonders einfach zu nutzen. Es gibt vorgefertigte Methoden zum Senden und Empfangen von Zeichenfolgen, Bildern, Binärdaten und anderen Objekten (insofern serialisierbar), alle Events werden bereitgestellt usw.

      Wichtig: Ihr müsst euch für eine Seite entscheiden - entweder beide Seiten Managed oder keine.


      Lesen, dann fragen!
      To make foobar2000 a real random music player, I figured out the only way to achieve this is to use Windows Media Player.

      At some point in time, you recognize that knowing more does not necessarily make you more happy.
      Nicht schlecht! Ist dir gelungen. :)


      Ich hätte da aber einen "Fehler" gefunden, oder ich versteh die Funktion StopExecution falsch.
      Möchte ich einen Managed Server starten und wieder beenden, weil zB keiner antwortet, (also StopExecution()) kommt es zu einer NullReferenceException:

      VB.NET-Quellcode

      1. Private server As ManagedServer
      2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      3. server = New ManagedServer(Net.IPAddress.Any, 8000)
      4. server.StartExecution()
      5. server.WaitForClientAsync()
      6. server.StopExecution()
      7. End Sub


      Soll vielleicht ein noch nicht instanziierter ClientSockel/TcpClient geschlossen werden?


      Außerdem:
      Warum benennst du die Methoden "StartExecution" (irgendwie doppelt gemoppelt oder?) ^^



      PS: Ist es möglich, dass die Klassendiagramme nicht in der Express Edition von Studio vorhanden ist?

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „yeti2078“ ()

      StartExecution heißt jetzt BeginExecution und EndExecution wurde zu EndExecution, besser so? ;)
      :D Eigentlich hat mich eher der Begriff "Execution" gestört: also warum nicht einfach "Start" und "Stop"?
      Ist ja letztendlich auch egal...



      Klassendiagramme lassen sich soweit ich weiß nicht in der Express-Version erstellen
      War auch zu erwarten. :(
      Ich lad mir erst Version 127.0.0.1 herunter xD
      ne kleiner schwerz am Rande aber die Versionsnummer ließ mich das sofort irgendwie assoziieren *g*

      Aufjedenfall top arbeit, hoffe mal jetzt werden die Fragen wieder weniger zu TCP ("kann ich nicht", "versteh ich nicht"). Voraussetzung ist das die natürlich Suchen, aber immerhin kann man ja den nun einen Link in rachen schmeißen.
      Noch eine Frage:
      Angenommen der User sitzt hinter einer Firewall. Dann müsste er doch eine Portweiterleitung auf seinen PC einrichten oder?

      Mfg
      Firestorm