Ticket.dll - Kinderleichte Kommunikation übers Netz

    • Beta
    • Closed Source

    Es gibt 31 Antworten in diesem Thema. Der letzte Beitrag () ist von mrwebber.

      Ticket.dll - Kinderleichte Kommunikation übers Netz

      Name der Klassenbibliothek:
      Ticket.dll

      ACHTUNG - ES GIBT NUN EINEN DEUTLICH BESSEREN NACHFOLGER:
      Universal Ticket

      Beschreibung:
      Die Ticket.dll stellt eine einfache Möglichkeit bereit, mehrere Programme übers Internet kommunizieren zu lassen.
      Alles weitere erfahrt ihr im unten verlinkten YouTube-Video!
      Ich habe auch eine Dateiübertragung eingebaut. ;)

      Anwendung:
      Chat
      Remotesteuerung
      etc.

      Verwendete Programmiersprache und IDE:
      Visual Basic .NET
      IDE: VB 2010 Ultimate

      Systemanforderungen:
      Keine besonderen Anforderungen

      Zusatzinfos:
      • Verbindungen erfolgen ausschließlich verschlüsselt
      • Ein Sever kann für beliebig viele Clienten und unterschiedliche Programmtypen gleichzeitig verwendet werden
      • Anzahl der Codezeilen: 2000+
      • Dateiübertragung hat keine Begrenzung der Dateigröße
      • Server lässt sich manuell über die Konsole/Stringbefehle oder direkt von eurem Code über Methoden steuern

      Download:
      Im Anhang im Testprojekt enthalten (HINWEIS: Zum öffnen des Projektes die .vbproj-Datei öffnen, da das Projekt in Visual Studio Ultimate erstellt wurde!)

      Lizenz/Weitergabe:
      Freeware, mit Namensnennung

      Verwendung:
      Youtube Tutorial Teil 1
      Youtube Tutorial Teil 2
      Youtube Tutorial Teil 3
      Youtube Tutorial Teil 4
      Youtube Tutorial Teil 5
      Youtube Tutorial Teil 6
      Youtube Tutorial Teil 7
      Youtube Tutorial Teil 8
      Youtube Tutorial Teil 9
      Youtube Tutorial Teil 10
      Youtube Tutorial Teil 11

      Ticket.dll-Server im Internet freigeben

      Bin gespannt:
      Eure Meinung würde mich sehr interessieren ... :thumbup:

      Verbesserungen:
      • Die Befehle sind nun auch via Methoden aufrufbar
      • Klassendiagramm erstellt
      • Methoden auf englisch (Klassendiagramm und Beispielprojekt auch angepasst)

      Ziele:
      • Ticket-Angekommen-Event nicht von einem zweiten Thead aus aufrufen

      ACHTUNG - ES GIBT NUN EINEN DEUTLICH BESSEREN NACHFOLGER:
      Universal Ticket
      Bilder
      • ticketDllKlassendiagrammEnglisch.PNG

        24,22 kB, 357×539, 1.073 mal angesehen
      Dateien

      Variablen über das Internet senden? [VB.NET] Universal Ticket.dll :thumbup:
      Lasse deine Programme selbstständig lernen! [VB.NET] Brain.dll
      :thumbsup:

      Dieser Beitrag wurde bereits 23 mal editiert, zuletzt von „mrwebber“ ()

      Hey,

      vielleicht solltest Du die Anwender besser unterstützen, indem Du alle öffentlichen Methoden, Konstruktoren, Properties mit den entsprechenden Kommentaren ausstattest, damit sie beim Programmieren in Intellisense zur Verfügung stehen.
      Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
      Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
      Genau hab grad das Tutorial angeschaut. Befehle aus String übergeben mag für ne Konsole schön und gut sein. Jedoch zum Programmieren ein Horror. Wenn du schon Befehle machst, dann mach ne Enumeration. Aber besser ist immernoch z.B. eine Start Methode.


      Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

      ThuCommix schrieb:

      Leider zeugt das schon von unsolider Programmierung:



      Oh ja. Da hast du wohl recht! Doch keine Angst. Hierbei handelt es sich nur um ein schnell dahingeschlamptes Testprojekt. Die dll ist natürlich sauber gemacht ;)
      Hab mir das schon fast gedacht, dass es jemand sieht und nen schlechten Eindruck bekommt ... :D

      thefiloe schrieb:


      Genau hab grad das Tutorial angeschaut. Befehle aus String übergeben mag für ne Konsole schön und gut sein. Jedoch zum Programmieren ein Horror. Wenn du schon Befehle machst, dann mach ne Enumeration. Aber besser ist immernoch z.B. eine Start Methode.


      Stimmt. Ich sollte alle Befehle noch als Methoden wieder aufnehmen. So hatte ich es auch zuerst, bis der Kumpel, der die Logsachen machte gemeint hat, er würde gernde die Konsole für Befehle verwenden. Da habe ich Kurzerhand über den Server noch die Serversteuerung gestellt ;) Das ist behoben, siehe Präsentations-Post.

      thefiloe schrieb:


      Klassendiagramm wäre gut, damit man sieht was alles drinnen ist.


      Von den privaten Klassen oder den öffentlichen? Klassendiagramm ist nun im Anhang oben drin.

      MfG

      EDIT: Eine Sache die mir jetzt erst wirklich auffällt: Ich habe dauernd deutsch und englisch vermischt. Das muss einheitlich werden. Sollte ich englisch nehmen? Was spräche gegen deutsch?
      EDIT 2: Ich geh dann mal schalfen. Gute nacht :sleeping:

      Variablen über das Internet senden? [VB.NET] Universal Ticket.dll :thumbup:
      Lasse deine Programme selbstständig lernen! [VB.NET] Brain.dll
      :thumbsup:

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „mrwebber“ ()

      @mrwebber: ich wollte mal auf ein (video)kommentar von dir zurückgreifen. du sagtest, dass man im router keinen port freischalten muss, wenn man die beiden pcs in einem netzwerk sind. okay. ich habe jetzt mein netbook, worauf ein client läuft & auf meinem hauptrechner wo ein client & der server läuft. beide computer sind mit dem router verbunden. welche ip brauche ich dann um von meinem netbook aus auf meinen aktuellen rechner (darauf der server) zu gelangen? btw.: ich habe keinerlei zugriff auf den router. d.h. ich kann keine einstellungen ändern.
      Hey,

      ich hab mir grade Deine Videos angeguggt. Verstehs nicht falsch. Ich finde Deine Idee toll und Du solltest es auch weiterführen. Aber: Ich hab die Videos ausgemacht, als Du mit dem Timer angefangen hast. Eines sei Dir gesagt, wenns um TCP und Server-Client-Kommunikation geht, dann ist ein Timer fehl am Platze. Du solltest das unbedingt ändern, wirklich.

      Ich hatte mich auch schon gewundert, warum der Server in Deinem Video eine bestimmte Zeit braucht, um die IDs zu verteilen, das deutet auch auf nen Timer hin. Ich mag jetzt nicht in Deinen Code schauen, sonst ärgere ich mich.

      Bitte ändere das, denn Deine Idee find ich wirklich gut. Aber eben ohne Timer.
      Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
      Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

      Dodo schrieb:

      Also diese Denglischen Funktionsnamen sind schrecklich. Nutze vernünftige englische Bezeichnungen dafür. So macht das ganze einen ziemlich noobigen Eindruck.

      Okay, ich versuche in nächster Zeit alles auf englisch unzustellen ;)

      SpaceyX schrieb:

      Ich hatte mich auch schon gewundert, warum der Server in Deinem Video eine bestimmte Zeit braucht, um die IDs zu verteilen, das deutet auch auf nen Timer hin.


      Erstmal natürlich vielen Dank für die Kritik. Ich freue mich sehr darüber, denn ohne Kritik kann man sich ja schlecht verbessern. Ich finde deine Einwände sehr gut, allerdings muss ich dich "enttäuschen" oder erleichtern:

      Ich habe fast alle Stellen nun mit Events ausgerüstet. Das hat prima geklappt nach ein bischen Recherche. Warum verteilt der Server die IDs so langsam? Das liegt nicht etwa daran, dass ich einen Timer verwendet habe, sondern der Grund ist, dass die Prüfung, ob ein Client noch da ist, ein Timeout hat :thumbsup:

      SpaceyX schrieb:

      Aber eben ohne Timer.

      Ich gebe mein Bestes. Es sind nur noch sehr wenige Timer drin. Ich entfernte schon alle, die ich durch Events ersetzen konnte ;)

      SpaceyX schrieb:

      wenns um TCP und Server-Client-Kommunikation geht, dann ist ein Timer fehl am Platze

      Da hast du sehr, sehr recht. Zu anfangs wusste ich leider noch nicht, dass man Events selbst erstellen kann ^^

      SpaceyX schrieb:

      Ich hab die Videos ausgemacht, als Du mit dem Timer angefangen hast.

      Was meinst du damit? Ich verstehe den Satz leider nicht :D

      EDIT: Achso. Jetzt ergibt alles Sinn. Ich habe mich verlesen. Es ging um die Videos. Ja. Ich habe auch ein Event eingebaut, dass dir meldet, wenn ein Ticket eingetroffen ist. Leider wird dieses Event von einem anderen Thread aus ausgelöst. Das bedeutet, dass ich nicht auf die RichtTextBox zugreifen kann. Daher der Timer.
      Man könnte das Event für die RichTextBox nutzen, wenn man dafür die Kontrolle für threadübergreifende Zugriffe deaktiviert. Das habe ich im Testprojekt (oben im Anhang) auch so gemacht. Musste natürlich auch Kritik dafür ernten, siehe obere Posts. (hier) Ich gebe mein Bestes und vielleicht finde ich ja noch irgendeinen Weg, wie ich den zweiten Thread umgehen könnte ;)

      Variablen über das Internet senden? [VB.NET] Universal Ticket.dll :thumbup:
      Lasse deine Programme selbstständig lernen! [VB.NET] Brain.dll
      :thumbsup:

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mrwebber“ ()

      Ich glaub, im 3 Video setzt Du den Timer im Client auf die Form, da hab ich ausgemacht.

      Der ErfinderDesRades hat hier gutes Tutorial, was Chats angeht: vb-paradise.de/allgemeines/sou…leistungsfaehigem-server/

      Vielleicht kannst Du Dir da viel Nützliches abguggn.
      Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
      Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

      SpaceyX schrieb:

      Bei Deinem Demo Multi ClientPanamon GUI ists OFF.

      Gut erkannt ;) Erst seit gestern verwende ich sie, allerdings habe ich die .dll mit dieser Einstellung kompiliert ohne Probleme (aber glaub noch nicht hochgeladen, ist ja egal, der code ist ja noch der selbe)

      EDIT: Rückzug. Hatte einen Fehler beim Aktivieren von Strict gemacht. Es gibt einige Sachen, die Option Strict nicht gefallen (34 Stück). Ich kann das nicht alles umgehen. Allerdings werde ich beim nächsten Projekt gleich mit Option Strict beginnen :P

      Variablen über das Internet senden? [VB.NET] Universal Ticket.dll :thumbup:
      Lasse deine Programme selbstständig lernen! [VB.NET] Brain.dll
      :thumbsup:

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