Universal Ticket.dll - Variablen ganz easy über's Internet versenden

    • Release
    • Closed Source

    Es gibt 107 Antworten in diesem Thema. Der letzte Beitrag () ist von ClonkAndre.

      nafets schrieb:

      @mrwebber
      Anstatt eine Form zu verlangen, würde ich auf ISynchronizeInvoke setzen: Man kann es, wenn man will auch selbst implementieren und es nimmt auch Controls, nicht nur Forms. Der Aufruf ist aber fast 1:1 der gleiche wie bei der Form

      Cool! Hätte ich das früher gewusst :) Beim nächsten Projekt werde ich daraf zurückgreifen!

      Das mit PHP. Kann man darüber nachdenken. Allerdings wird es glaub etwas schwierig, das mit der Verschlüsselung auch so umzusetzen.
      Wie wäre es mit einem lokalen UTicket-Client (auf dem PHP/Webserver-Server-PC), der über TCP oder sowas die Daten von PHP bekommt und die dann in das Ticket-Netzwerk weiterleitet?

      EDIT: Anhang, Grobentwurf
      Bilder
      • PHP.png

        8,59 kB, 564×369, 182 mal angesehen

      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“ ()

      Hey ich hab ein kleines Problem.. undzwar wenn ich versuche die Verbindung eines Teilnehmers über ein Chatkommand zu beenden hängt sich die Anwendung auf.

      VB.NET-Quellcode

      1. Private Sub utc_UTicketArrived1(sSenderID As String, bSentToAll As Boolean, sCommand As String, oUserData As List(Of Object)) Handles utc.UTicketArrived
      2. Select Case sCommand
      3. Case "stop"
      4. If utc.isConnectionAlive = True Then
      5. utc.shutdown()
      6. End If
      7. End Select
      8. End Sub


      Beende ich die Verbindung im Programm selber über einen Button geht es, wird es über ein Kommando gemacht welches von einer Art Master gesendet wird nicht

      Edit: Hab eine Lösung, zwar etwas unsauber aber tut seinen Dienst. Undzwar wird beim Empfangen des Kommandos ein Bool auf True gesetzt und ein Timer überprüft jede Sekunde diesen Bool und beendet entsprechend
      die Verbindung.

      Edit2: Gibt es nicht eine Möglichkeit die Clienten Serverseitig zu trennen? So das die Clienten den Disconnectbefehlt nicht selbst ausführen müssen.

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

      Hallo @Phexxtor,

      dieses Phänomen habe ich auch kürzlich selbst festgestellt. Während das Event Ticket-Arrived ausführt wird,
      lässt sich offenbar kein Befehl an den Clienten senden. Müsste ein strukturelles Problem sein.
      Ich denke, dass während des Events der Client-Thread nicht beendet werden kann und deshalb eine Endlosschleife entsteht.

      Als kleine Abhilfe dient dieser Kniff:

      VB.NET-Quellcode

      1. Select Case sCommand
      2. Case "stop"
      3. Dim thrShutdown As New System.Threading.Thread(AddressOf utc.shutdown)
      4. thrShutdown.Start()


      Ich weiß, eine Lösung innerhalb der .dll wäre hübscher, aber dafür habe ich leider gerade zu wenig Zeit ;)

      EDIT: Hm.. Me.Close hinten dran gehängt funzt dann allerdings immernoch nicht, da es ja immernoch im Event ausgeführt wird.

      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“ ()

      Hey,

      Ich möchte gerne ein komplettes TreeView von einem Client zum anderen Senden. Das TreeView wird auf einem Client mit dem Ordnerinhalt befüllt und anschließend soll es per Ticket zum anderen Client kommen...

      Allerdings habe ich keine Idee wie ich es umsetzen könnte :(

      Ich hoffe ihr habt eine Idee für mich :)

      Mit freundlichen Grüßen

      Niklas
      Hi! Ich mache derzeit ein Projekt mit ASP.Net und eine Konsolenanwendung (beides C#) und wollte dich bitten, dass du beim Client die Form optional machst, denn es stört sehr, wenn ich eine Form erzeugen muss und dann noch die Visual Basic DLL mitliefern muss.

      EDIT: Benutze die Konsolenanwendung mit Mono auf Linux!
      Whos Faster ALPHA: Bald....

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

      Niklas schrieb:

      Ich möchte gerne ein komplettes TreeView von einem Client zum anderen Senden.

      Hi, kommt ganz drauf an, mit was du diese Treeview füllen möchtest. Du könntest beispielsweise eine Klasse erstellen, die alle Daten von dem Treeview aufnehmen kann. Dieses verschickst du dann über UTicket und lädtst es beim anderen Clienten wieder in ein Treeview. Möglicherweise gibt es ja auch schon ein Objekt beim Treeview, das die ganzen Treeview-Daten enthält?

      @Digot: Also bei mir ist die Form auch beim Client optional. Kannst du das noch einmal prüfen?
      Gruß

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

      Phexxtor schrieb:

      Kann ich mit der dll auch in C# arbeiten? Wollte gerade in einer C#-Anwendung einen Clienten definieren aber ich habs irgendwie nicht hinbekommen , wär super falls mir da jemand helfen kann


      Dann liegt das an dir denn die DLL funktioniert in C# sowie auch in VB. So funktioniert eine C# Library auch unter VB ;)
      Software being "Done" is like lawn being "Mowed". (Jim Benson)
      Guten Abend,

      ich habe derzeit ein Problem, undzwar werden meine Daten zwar übergeben, beim Client steht in der Console "Ticket arrived!" aber das Event wird nicht aufgerufen. Mit einzelnen strings etc. funktioniert alles jedoch nicht mit Structures

      VB.NET-Quellcode

      1. 'auch hier erst ohne Serializable, aufgrund eines Fehler habe ich Serializable eingefügt und es damit versucht
      2. <Serializable> _
      3. Public Structure TestDaten
      4. Dim ID As String
      5. Dim Name As String
      6. End Structure
      7. Private Sub Client_UTicketArrived(sSenderID As String, bSentToAll As
      8. Boolean, sCommand As String, oUserData As List(Of Object)) Handles
      9. Client.UTicketArrived
      10. Select Case sCommand.ToLower
      11. Case "select"
      12. Dim senden As New TestDaten
      13. senden.Name = "Test"
      14. senden.ID = oUserData(0).ToString
      15. 'ich habe es auch ohne sUserdaten.add versucht und nur senden übergeben
      16. Dim sUserdaten As New List(Of Object)
      17. sUserdaten.Add(senden.ToString)
      18. Client.sendUTicket(sSenderID, "test", sUserdaten)
      19. End Select


      Wenn ich Serializable verwende kommt es zu keinem Fehler und das Ticket wird gesendet, wird auch vom Client empfangen. Jedoch wird das Ticket arrived event nicht ausgeführt


      Vielen Dank für euere Hilfe
      Hi, ich glaube, dass du einfach an einer ungeeigenten Stelle absendest. Mach mal ein neues Konsolenprojekt und teste das:

      Spoiler anzeigen

      VB.NET-Quellcode

      1. Imports UniversalTicket
      2. Module Module1
      3. Dim WithEvents Client As UTicketClient
      4. <Serializable> _
      5. Public Structure TestDaten
      6. Dim ID As String
      7. Dim Name As String
      8. End Structure
      9. Private Sub Client_ConnectionReadyForSending() Handles Client.ConnectionReadyForSending
      10. Console.WriteLine("Ready")
      11. Dim td As New TestDaten
      12. td.ID = "myid"
      13. td.Name = "myname"
      14. Client.sendUTicket("your_id", "benutzerdaten", td)
      15. End Sub
      16. Private Sub Client_UTicketArrived(sSenderID As String, bSentToAll As Boolean, sCommand As String, oUserData As List(Of Object)) Handles Client.UTicketArrived
      17. Select Case sCommand.ToLower
      18. Case "benutzerdaten"
      19. Dim td As TestDaten = CType(oUserData(0), TestDaten)
      20. Console.WriteLine("Received: " & td.ID & " " & td.Name)
      21. MsgBox("Received: " & td.ID & " " & td.Name)
      22. End Select
      23. End Sub
      24. Sub Main()
      25. Client = New UTicketClient("localhost", 78, "3290fja39j%§(§&_SERVER-PASSWORD_§=JDf9")
      26. Client.start("your_id")
      27. Console.ReadLine()
      28. End Sub
      29. End Module


      Funktioniert problemlos. Warum eig. Konsolenprojekt? :)

      Variablen über das Internet senden? [VB.NET] Universal Ticket.dll :thumbup:
      Lasse deine Programme selbstständig lernen! [VB.NET] Brain.dll
      :thumbsup:
      Ist eigentlich kein Kosolenprojekt. Kann es evtl. daran liegen dass ich ein ticket im arrived event sende. Aber wenn ich im arrived event einen normalen string sende kommt er am anderem ende an und ich kann ihn bearbeiten. Auch die Structure, aber die Structure kann ich nicht verarbeitet. Es steht in der Visual Studio Debug-Konsole (vielleicht war das falsch ausgedrückt) "Ticket arrived!", wie es anscheinend von der Lib gesendet wird. Bearbeiten kann ich im arrived event dann aber nichts. Auch z.B. ein console.writeline an erster stelle des Events wird nicht abgerufen.


      Ich habe es soweit getestet, ja dein Code funktiert. Komischerweise geht es nur wenn man sich die Structure selber sendet, dann kommt es an und ich kann es bearbeiten, sende ich es an jemand anderen wird es empfangen aber das event nicht ausgelöst.

      Nacho schrieb:

      Kann es evtl. daran liegen dass ich ein ticket im arrived event sende.

      Das kann wirklich sein. Kannst du das mal testen, wenn du an einer anderen Stelle sendest?

      Nacho schrieb:

      Komischerweise geht es nur wenn man sich die Structure selber sendet, dann kommt es an und ich kann es bearbeiten, sende ich es an jemand anderen wird es empfangen aber das event nicht ausgelöst.

      Könnte mit dem obigen Problem zusammenhängen ...

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