Seite 1 von 1

TCP Socket

Verfasst: Mi, 06. Nov 2019 16:36
von Statler
Hallo zusammen,

ich arbeite aktuell an einem MQTT (Message Broker) Projekt. Um die Clients zu testen, moechte ich mir eine kleine Testumgebung mittels Xbase bauen, welche mit dem MQTT Server kommuniziert und die von den Clients gelieferten Prozessdaten visualisiert.

Das ganze basiert auf TCP. Man etabliert einen TCP-Socket zu dem MQTT Server. Ueber diesen Socket koennen dann die MQTT Pakete gesendet bzw. empfangen werden.

Xbase bietet mit Bordmitteln eine Socket Toolsammlung an. SocketOpen (), SocketClose (), SocketRecv(), SocketSend() sind die Dinge, die man benoetigt.

Wie kann auf eine elegante Art und Weise ein Eventgesteuerter Listener realisiert werden, der immer dann angesprungen wird, wenn Daten ueber den Socket eintreffen. Via Timertick alle 50ms nachschauen ist nicht so schoen ...

Gruss

Achim

Re: TCP Socket

Verfasst: Do, 07. Nov 2019 11:22
von andreas
Hallo Achim,

es gibt einen schönen Besipiel von Alaska für die socket-Benutzung, dass mit Xbase++ installiert wird!

Re: TCP Socket

Verfasst: Do, 07. Nov 2019 15:01
von Statler
Hallo Andreas,

die Samples von 2.0 kann ich bei mir nicht finden. Ich habe die CD allerdings nicht installiert, sondern lediglich die Dateien in meine vorhandene Strukturen kopiert. Ich kann so mit eine Batch-Datei zwischen Umgebung 1.8/1.9/2.0 umschalten. Hin und wieder brauche ich die alte Umgebung noch. Die IDE setze ich nicht ein, ich arbeite mit Notepad++.

Frueher standen die Samples irgendwo unter Resourcen, jetzt nicht mehr.

Vielleicht kann mir mal jemand die paar Zeilen, wo der Port abgehoert wird, kopieren.

Gruss

Achim

Re: TCP Socket

Verfasst: Do, 07. Nov 2019 16:57
von Schubi
Hallo Achim,

die Alaska Samples findest du nicht im Alaska-Programm-Ordner, sondern unter
c:\Users\<dein_username>\Documents\Xbase++\source\samples

Ich such mich auch jedesmal zu Tode :)

Re: TCP Socket

Verfasst: Do, 07. Nov 2019 17:31
von Tom
@Steffen: Da sucht man sich quasi zum Zombie, wenn man, wie Achim, keine Installation vorgenommen, sondern nur die Alaska-Verzeichnisstruktur aus einer bestehenden Installation kopiert hat. Dann sind sie nämlich nicht nur nicht aufzufinden, sondern schlicht nicht vorhanden. 8)

Re: TCP Socket

Verfasst: Do, 07. Nov 2019 23:35
von Statler
Hallo zusammen,

ich habe mir die CD mal in einer virtuellen Maschine installiert und die Samples rauskopiert. Da, wo die lagen, haette ich die nie gefunden :D

von daher erstmal besten Dank fuer die Info's.

Die Idee, den Socket Listener in einem eigen Thread laufen zu lassen und nach jedem Paket den Thread zu beenden und dann neu zu starten ist nicht schlecht, das werde ich wohl so realisieren.

Gruss

Achim

Re: TCP Socket

Verfasst: Fr, 08. Nov 2019 12:07
von andreas
Hallo Achim,

der Listener nimmt die Verbindungen an und muss immer laufen. Sobald ein neuer Client Verbindung aufgenommen hat, sollte dieser in einem eigenen Thread bearbeitet werden. Diesen Thread kannst du gerne schließen...

Re: TCP Socket

Verfasst: Mi, 10. Nov 2021 15:14
von Muecke
Hallo Achim

Ich sollte via MQTT daten abholen und senden.

Kannst du mir da auf die Sprünge helfen, was ich dazu alles brauche.

Vielleicht ein kleiner Einstieg ?

Schöne Grüsse
Thomas

Re: TCP Socket

Verfasst: Mi, 10. Nov 2021 15:23
von Martin Altmann
Moin Thomas,
vielleicht hilft Dir ja auch noch eines der ersten Alaska-Videos weiter: https://www.youtube.com/watch?v=QtkMpAwruxY

Viele Grüße,
Martin

Re: TCP Socket

Verfasst: Mi, 10. Nov 2021 15:50
von Werner_Bayern
Servus Achim,

nimm das empfohlene Sample (WB / Hilfe / Desktop-Beispiele) asinet / socket und passe es für Dich an. Das Beispiel ist genial, wir haben das vor ca. 3 Monaten auch so gemacht und einen Server-Dienst damit aufgesetzt, der mit mehreren Android-Handys und Tablets (native App von uns) kommuniziert und Daten austauscht. Läuft rund um die Uhr, bis heute kein Absturz, nichts!

Da hat Alaska top Arbeit geleistet, hat uns sicherlich viele Stunden gespart! =D>

Re: TCP Socket

Verfasst: Mi, 10. Nov 2021 16:58
von Muecke
Besten Dank für diese Infos

Brauche ich für MQTT nicht einen Brocker um mit dem Protokoll umzugehen ?

Schöne Grüsse
Thomas

Re: TCP Socket

Verfasst: Fr, 12. Nov 2021 8:20
von andreas
Ja, für MQTT brauchst du einen Brocker, der als Server für den Datenaustausch dient. Unter Linux gibt es "Mosquitto", denn du auch z.B. auf Raspi installieren könntest. Angeblich gibt es den auch für Windows.

Re: TCP Socket

Verfasst: Fr, 12. Nov 2021 9:47
von Muecke
Hallo Andreas

Ja habe mir dies runtergeladen und installiert.

Nun warte ich noch auf die Freigabe für die Daten um dies zu testen.

Schöne Grüsse
Thomas

Re: TCP Socket

Verfasst: So, 14. Nov 2021 22:41
von Statler
Hallo zusammen,

hatte gerade eine PN zu diesem Thema bekommen und bereits geantwortet. Es gibt im Netz freie MQTT Server, die man zum experimentieren benutzen kann. Da die öffentlich sind, sollte man nur Testdaten verwenden. Es gibt mehrere Server, die man alle ausprobieren sollte, zwecks Prüfung, ob der eigene Stack damit klar kommt.

Das MQTT Protokoll ist in einer Art RFC beschrieben, da steht alles drin, was nötig ist. Nach "mqtt-v3.1.1-os.pdf" googeln ...

Gruss

Achim