47. Stuttgarter Lazarustreffen

Alle Informationen zu Treffen der regionalen Lazarus-Gruppen
Linkat
Lazarusforum e. V.
Beiträge: 561
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 22.1; Lazarus 4.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 64
Wohnort: nr Stuttgart

Re: 47. Stuttgarter Lazarustreffen

Beitrag von Linkat »

Zum Treffen kamen 7 Teilnehmer:
Beginn: 11 Uhr Ende: ca. 17:30 Uhr

folgende Themen wurden besprochen:

Projektverwaltung
DiceStat
Pascal-Cafe
Listen-Optimierung
Gen-Vergleich (Äpfel-Birnen)
Modbus - Wallbox
LG-Wrapper


Das nächste Treffen wird wie schon erwähnt voraussichtlich am Samstag den 05.07.2025 sein.

Gruß, Linkat
Linux Mint 21.3; Lazarus 3.4 FPC 3.2.2; RaspiOS

Benutzeravatar
juelin
Beiträge: 269
Registriert: Sa 24. Jul 2021, 18:03
OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
CPU-Target: 64Bit
Wohnort: Mannheim

Re: 47. Stuttgarter Lazarustreffen

Beitrag von juelin »

Hallo zusammen,
war wieder ein schönes Treffen.
War aber erst nach 23 Uhr zu Hause. (Die Bahn....Die Bahn).
Versuche jetzt Debian zu installieren.
Hoffentlich klappt es.
Und dann mariadb und natürlich lazarus mit fpcdeluce.
Wenn ich noch Fragen habe melde ich mich.
In diesem Zusammenhang.
Es wäre schön, wenn ich eine Liste mit Vor- und Nachnamen sowie Psydonymn im Lazarus und
ebentuell Wohnort bekommen könnte. (natürlich freiwillig).
Ich habe
Vorname Nachname Lazarus Wohnort
Jürgen Linder juelin Mannheim

Am 5.7.2025 werde ich wohl nicht kommen, da ich ja am 19.7.2025
mein Treffen in Mannheim habe.

Alles Gute der Gruppe
Jürgen

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1629
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: 47. Stuttgarter Lazarustreffen

Beitrag von corpsman »

Linkat hat geschrieben: Sa 15. Mär 2025, 09:42 Das nächste Treffen wird wie schon erwähnt voraussichtlich am Samstag den 05.07.2025 sein.
Juhu, da hab ich noch frei im Kalender, freu mich euch bald wieder zu sehen ;)
Zuletzt geändert von corpsman am Di 20. Mai 2025, 17:06, insgesamt 1-mal geändert.
--
Just try it

Benutzeravatar
kupferstecher
Beiträge: 434
Registriert: Do 17. Nov 2016, 11:52

Re: 47. Stuttgarter Lazarustreffen

Beitrag von kupferstecher »

Beim Treffen gab es eine Diskussion, ob man bei der Datenübertragung über TCP sich selber um eine Paketierung kümmern muss, oder ob das TCP-Protokoll selbst in Paketen arbeitet.

Hier ein Zitat aus Wikipedia:

"Im Gegensatz zum verbindungslosen UDP implementiert TCP einen bidirektionalen, byte-orientierten, zuverlässigen Datenstrom zwischen zwei Endpunkten. Das darunterliegende Protokoll (IP) ist paketorientiert, [...]"
https://de.wikipedia.org/wiki/Transmiss ... A4ssigkeit

Knackpunkt ist, dass es sich um einen Datenstrom handelt, nicht um Pakete/Datagramme. Der Empfänger hat keine Möglichkeit bei mehreren empfangenen IP-Paketen und daraus gelesenen TCP-Frames zu erkennen, ob die Pakete von der sendenden Anwendung ürsprünglich als ein Datenblock versendet wurden und hat entsprechend auch zu nicht die Möglichkeit zu erkennen, ob nach einem empfangenen IP-Paket nicht sofort noch ein weiteres eintrifft (dessen Daten im Kontext noch zum vorigen Paket gehören).

Hier noch ein Link, der die Probleme bei der Annahme, dass man sich auf Pakete verlassen könnte, gut beschreibt:
https://www.sobyte.net/post/2021-12/why ... age-frame/

Daraus:
"
- The TCP protocol is a byte-stream oriented protocol, which may combine or split the data of the application layer protocols.
- The application layer protocol’s does not define the boundaries of the message resulting in the inability of the receiver of the data to stitch the data.
"

UDP ist dagegen paketorientiert, man spricht von Datagrammen.
"UDP ermöglicht Anwendungen den Versand von Datagrammen in IP-basierten Rechnernetzen."
"Die maximale Größe eines UDP-Datagrammes beträgt theoretisch 65.535 Bytes, da das Length-Feld des UDP-Headers 16 Bit lang ist und die größte mit 16 Bit darstellbare Zahl gerade 65.535 (= 216−1) ist. Solch große Segmente werden jedoch von IP fragmentiert übertragen."
Beides:
https://de.wikipedia.org/wiki/User_Datagram_Protocol

IP-Pakete sind mit Prüfsummen versehen und die Datagramme werden darüber abgesichert, man kann sich also auf die Datenkosistenz einzelner Datagramme ("UDP-Pakete") verlassen, außer man muss mit gezielter Datenmanipulation auf dem Übertragungsweg rechnen. Datagramme können fehlen, in falscher Reihenfolge ankommen oder sogar doppelt ankommen, sind in sich aber konsistent.

Grüße~

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1629
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: 47. Stuttgarter Lazarustreffen

Beitrag von corpsman »

Beim Treffen gab es eine Diskussion, ob man bei der Datenübertragung über TCP sich selber um eine Paketierung kümmern muss, oder ob das TCP-Protokoll selbst in Paketen arbeitet.
Da ist es ja schade dass ich nicht beim Treffen war, um das Problem der Pakete zu lösen habe ich den ChunkManager geschrieben, diese Komponente löst genau das beschriebene Problem und bildet seit Jahren die Stabile Grundlage meiner Netzwerk gebundenen Spiele wie FPC_Atomic oder Config TD
--
Just try it

Acia6850
Beiträge: 30
Registriert: Mo 9. Okt 2023, 18:45
OS, Lazarus, FPC: Windows + WSL / Linux Debian Rasbian OS (L 3.0.0 FPC 3.3.2)
CPU-Target: 64Bit
Wohnort: LK Ludwigsburg

Re: 47. Stuttgarter Lazarustreffen

Beitrag von Acia6850 »

Hallo,

die Diskussion ging um die Übertragung von Daten via TCP-Socket mit der Synapse Library.

Ich habe einn Tcp-Socket Server mit Synapse auf dem Raspberry Pi geschrieben.
Der Tcp-Socket Client läuft auf Windows.

Der Datenaustausch wird mit der SendString Funktion der Synapse Library gemacht.

Da die gesendeten und empfangenen Daten unterschiedliche und variable Längen haben verwende ich diese Funktion für die Datenübertragung.

Daraus entstand die Diskussion.
Die Daten könnten in mehrere Packet aufgeteilt werden und ob sie dann wieder beim Empfänger in der gleichen Reihenfolge und Inhalt ankommen.

Da TCP das Protokoll ist es eindeutig Ja.

Der Diskussionspartner meinte UDP wäre das richtige Protokoll.

Fazit Der Socket Server und der Socket Client funktionieren einwandfrei ohne Fehler.

Übertragun von binären Daten mit String als Buffer.

Synapse SendString Funktion :


{:Send data string via connected socket. Any terminator is not added! If you
need send true string with CR-LF termination, you must add CR-LF characters
to sended string! Because any termination is not added automaticly, you can
use this function for sending any binary data in binary string.}
procedure SendString(Data: AnsiString); virtual;
Grüße
Acia6850

Acia6850
Beiträge: 30
Registriert: Mo 9. Okt 2023, 18:45
OS, Lazarus, FPC: Windows + WSL / Linux Debian Rasbian OS (L 3.0.0 FPC 3.3.2)
CPU-Target: 64Bit
Wohnort: LK Ludwigsburg

Re: 47. Stuttgarter Lazarustreffen

Beitrag von Acia6850 »

Hallo,

bei meiner Vorstellung Lazarus-Wrapper für die Linux C LG Lib habe ich einen Headless Raspberry PI Zero 2W dabei.

OS : Linux bookworm aarch64.

Damit er auch unterwegs mit ssh ereichbar ist benötigt er einen Access Point Zugang.

Ich habe die Wlan Schnittstelle so konfiguriert:

1 : Wlan zu Hause als Client im Hausnetzwerk.

2 : Wlan für unterwegs Access Point mit Raspberry Pi.


Dies kann man mit den Konsolen Programmen nmtui und nmcli konfigurieren.

Am Schluss muss man noch in den Konfigurationsdateien eine kleine Ergänzung machen.

Verzeichnis :

/etc/NetworkManager/system-connections


Netzwerk Konfigurationsdatei öffnen und im

Abschnitt : connection

autoconnect=true
autoconnect=priority=xx

setzen oder einfügen.

Dies muss in der Haus Netzwerk -Konfigurationsdatei und der AP Konfigurationsdatei erfolgen.

z.B.

xx für AP (1)
xx für Zu Hause (5)

Der höchste Wert wird zuerst ausgeführt.


Viel Spass beim Testen.

Acia6850

Antworten