TCP Socket
Moderator: Moderatoren
TCP Socket
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
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
- andreas
- Der Entwickler von "Deep Thought"
- Beiträge: 1902
- Registriert: Mi, 28. Sep 2005 10:53
- Wohnort: Osnabrück
- Hat sich bedankt: 4 Mal
- Kontaktdaten:
Re: TCP Socket
Hallo Achim,
es gibt einen schönen Besipiel von Alaska für die socket-Benutzung, dass mit Xbase++ installiert wird!
es gibt einen schönen Besipiel von Alaska für die socket-Benutzung, dass mit Xbase++ installiert wird!
Re: TCP Socket
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
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
- Schubi
- Rekursionen-Architekt
- Beiträge: 139
- Registriert: Mi, 05. Okt 2005 15:10
- Wohnort: Wiesloch
- Hat sich bedankt: 5 Mal
Re: TCP Socket
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
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
Grüße Steffen
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: TCP Socket
@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.
Herzlich,
Tom
Tom
Re: TCP Socket
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
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
ich habe mir die CD mal in einer virtuellen Maschine installiert und die Samples rauskopiert. Da, wo die lagen, haette ich die nie gefunden
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
- andreas
- Der Entwickler von "Deep Thought"
- Beiträge: 1902
- Registriert: Mi, 28. Sep 2005 10:53
- Wohnort: Osnabrück
- Hat sich bedankt: 4 Mal
- Kontaktdaten:
Re: TCP Socket
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...
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...
- Muecke
- 1000 working lines a day
- Beiträge: 623
- Registriert: Di, 24. Okt 2006 7:19
- Wohnort: Samstagern CH
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 9 Mal
- Kontaktdaten:
Re: TCP Socket
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
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
- Martin Altmann
- Foren-Administrator
- Beiträge: 16586
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: TCP Socket
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
vielleicht hilft Dir ja auch noch eines der ersten Alaska-Videos weiter: https://www.youtube.com/watch?v=QtkMpAwruxY
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Werner_Bayern
- Der Entwickler von "Deep Thought"
- Beiträge: 2129
- Registriert: Sa, 30. Jan 2010 22:58
- Wohnort: Niederbayern
- Hat sich bedankt: 30 Mal
- Danksagung erhalten: 75 Mal
Re: TCP Socket
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!
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!
es grüßt
Werner
<when the music is over, turn off the lights!>
Werner
<when the music is over, turn off the lights!>
- Muecke
- 1000 working lines a day
- Beiträge: 623
- Registriert: Di, 24. Okt 2006 7:19
- Wohnort: Samstagern CH
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 9 Mal
- Kontaktdaten:
Re: TCP Socket
Besten Dank für diese Infos
Brauche ich für MQTT nicht einen Brocker um mit dem Protokoll umzugehen ?
Schöne Grüsse
Thomas
Brauche ich für MQTT nicht einen Brocker um mit dem Protokoll umzugehen ?
Schöne Grüsse
Thomas
- andreas
- Der Entwickler von "Deep Thought"
- Beiträge: 1902
- Registriert: Mi, 28. Sep 2005 10:53
- Wohnort: Osnabrück
- Hat sich bedankt: 4 Mal
- Kontaktdaten:
Re: TCP Socket
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.
- Muecke
- 1000 working lines a day
- Beiträge: 623
- Registriert: Di, 24. Okt 2006 7:19
- Wohnort: Samstagern CH
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 9 Mal
- Kontaktdaten:
Re: TCP Socket
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
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
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
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