HowTo Client / Server?

Für allgemeine Fragen zur Programmierung mit PureBasic.
ABeltz
Beiträge: 33
Registriert: 21.10.2023 14:27
Computerausstattung: Betriebssystem: Kubuntu 23.10
KDE-Plasma-Version: 5.27.8
KDE-Frameworks-Version: 5.110.0
Qt-Version: 5.15.10
Kernel-Version: 6.5.0-13-generic (64-bit)
Grafik-Plattform: X11
Prozessoren: 32 × AMD Ryzen 9 3950X 16-Core Processor
Speicher: 62,7 GiB Arbeitsspeicher
Grafikprozessor: NVIDIA GeForce RTX 2080 Ti/PCIe/SSE2
Hersteller: Micro-Star International Co., Ltd
Produktname: MS-7C02
Systemversion: 1.0
Wohnort: Deutschland
Kontaktdaten:

HowTo Client / Server?

Beitrag von ABeltz »

Ich grüße alle PB'ler.

Wer kann mir bitte einen 'Spickzettel' für die Programmierung Client / Server Kommunikation zur Verfügung stellen?
Web Programmierung ist für mich bis dato leider immer noch ein weißer Fleck auf meiner Programmier-Techniken-Karte und ich möchte mich da gerne einarbeiten. Es wäre einfach mega, wenn mir jmd ein kleines Beispiel Programm zur Verfügung stellen könnte, wo ein Client eine 'beliebige' Anfrage an einen Server schickt, dort aufgefangen und darauf geantwortet wird.
Schon mal 1.000 Dank dafür im Voraus 8)

Edit by NicTheQuick: Verschoben von Code, Tipps & Tricks nach Allgemein
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: HowTo Client / Server?

Beitrag von NicTheQuick »

Dir geht es also hauptsächlich um HTTP-Requests?

Leider bietet Purebasic nur fertige Möglichkeiten für einen HTTP-Clienten an, die du in der Http-Bibliothek finden kannst. Mit `HTTPRequest()` kannst du Anfragen an HTTP-Server stellen.
Wenn du einen eigenen HTTP-Server schreiben willst, böte sich CGI bzw. FastCGI an, weil das Purebasic auch schon direkt mitliefert. Leider braucht es dafür aber noch eine Übersetzerebene wie z.B. Apache oder ähnliches.
Du kannst natürlich auch deinen eigenen HTTP-Server schreiben, aber es lohnt sich eigentlich nicht das Rad neu zu erfinden, weil es schon genügend ausführlich getestete Software dafür gibt.

Vielleicht erklärst du mal, was du dir so vorstellst.
ABeltz
Beiträge: 33
Registriert: 21.10.2023 14:27
Computerausstattung: Betriebssystem: Kubuntu 23.10
KDE-Plasma-Version: 5.27.8
KDE-Frameworks-Version: 5.110.0
Qt-Version: 5.15.10
Kernel-Version: 6.5.0-13-generic (64-bit)
Grafik-Plattform: X11
Prozessoren: 32 × AMD Ryzen 9 3950X 16-Core Processor
Speicher: 62,7 GiB Arbeitsspeicher
Grafikprozessor: NVIDIA GeForce RTX 2080 Ti/PCIe/SSE2
Hersteller: Micro-Star International Co., Ltd
Produktname: MS-7C02
Systemversion: 1.0
Wohnort: Deutschland
Kontaktdaten:

Re: HowTo Client / Server?

Beitrag von ABeltz »

Danke dir für die prompte Rückmeldung.
Im Kern soll es darum gehen, SQL-Anfragen an den Server zu schicken, und dieser gibt entsprechend Antwort.
Also grob:

- Verbindung aufbauen (1 zu 1)
- SQL Anfrage von Client an Server
- Ergebnismenge von Server zurück an den Client.

Für das Prototyping soll erst mal meine Kubuntu-Maschine mit MariaDB als Server fungieren.
Als Client käme zunächst ein WIN-11 Notebook zum Einsatz. Später vllt eine Android App.

Machbar? ;-)
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: HowTo Client / Server?

Beitrag von Kiffi »

Nur so nebenbei bemerkt:
ABeltz hat geschrieben: 14.02.2024 20:14- SQL Anfrage von Client an Server
bitte nicht! Denn somit könnte jeder, der im Besitz des Clients ist, Deine Datenbank schrotten.
a²+b²=mc²
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: HowTo Client / Server?

Beitrag von mk-soft »

Wenn man im SQL Server Benutzer anlegt im Programm nicht den Benutzer und das Passwort speichert solltes es geben.

Schau mal in der PB Hilfe nach UseMySQLDatabase. Da braucht man nichts mit Client und Server selber schreiben.
Funktioniert mit MySQL und MariaDB Server.
Hiemit kann ich auch auf meinen NAS-Server die MySQL Datenbank erreichen.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
ABeltz
Beiträge: 33
Registriert: 21.10.2023 14:27
Computerausstattung: Betriebssystem: Kubuntu 23.10
KDE-Plasma-Version: 5.27.8
KDE-Frameworks-Version: 5.110.0
Qt-Version: 5.15.10
Kernel-Version: 6.5.0-13-generic (64-bit)
Grafik-Plattform: X11
Prozessoren: 32 × AMD Ryzen 9 3950X 16-Core Processor
Speicher: 62,7 GiB Arbeitsspeicher
Grafikprozessor: NVIDIA GeForce RTX 2080 Ti/PCIe/SSE2
Hersteller: Micro-Star International Co., Ltd
Produktname: MS-7C02
Systemversion: 1.0
Wohnort: Deutschland
Kontaktdaten:

Re: HowTo Client / Server?

Beitrag von ABeltz »

Vielen Dank für Eure Rückmeldungen.
@Kiffi: ist mir bewusst, soll aber zunächst nicht das Thema sein, da die App nur für den 'Eigengebrauch' gedacht ist.
@mk-soft: schaue ich mir gerne an. Ich habe nämlich noch keine Vorstellung davon, wie ich an die DB-Daten rann komme, ohne verteilte Aufgaben. Deswegen der Ansatz Client <--> Server.
Benutzeravatar
dige
Beiträge: 1235
Registriert: 08.09.2004 08:53

Re: HowTo Client / Server?

Beitrag von dige »

Netzwerkkommunikation hat so einige Tücken parat. Einfache "Ping" "Pong" Spielchen funktionieren Out of the Box, aber wenn du größere Datenmengen transferieren willst (größer ist größer 64KB) solltest du ein paar Dinge beachten. Es gibt im Forum dazu einige gute Beispiele.
Stichwort: Eventhandling, Datenpuffer und Multithreading

Wenn man diese Dinge beachtet, funktioniert es sehr stabil - habe bisher gute Erfahrungen damit gemacht.
"Papa, ich laufe schneller - dann ist es nicht so weit."
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: HowTo Client / Server?

Beitrag von NicTheQuick »

Wenn es gar nicht um HTTP geht, verstehe ich dein Problem nicht. Was meinst du hiermit?
Ich habe nämlich noch keine Vorstellung davon, wie ich an die DB-Daten rann komme, ohne verteilte Aufgaben.
Von welchen verteilten Aufgaben redest du? Hast du überhaupt schon mal SQL-Queries geschrieben?
ABeltz
Beiträge: 33
Registriert: 21.10.2023 14:27
Computerausstattung: Betriebssystem: Kubuntu 23.10
KDE-Plasma-Version: 5.27.8
KDE-Frameworks-Version: 5.110.0
Qt-Version: 5.15.10
Kernel-Version: 6.5.0-13-generic (64-bit)
Grafik-Plattform: X11
Prozessoren: 32 × AMD Ryzen 9 3950X 16-Core Processor
Speicher: 62,7 GiB Arbeitsspeicher
Grafikprozessor: NVIDIA GeForce RTX 2080 Ti/PCIe/SSE2
Hersteller: Micro-Star International Co., Ltd
Produktname: MS-7C02
Systemversion: 1.0
Wohnort: Deutschland
Kontaktdaten:

Re: HowTo Client / Server?

Beitrag von ABeltz »

NicTheQuick hat geschrieben: 15.02.2024 13:12 Von welchen verteilten Aufgaben redest du? Hast du überhaupt schon mal SQL-Queries geschrieben?
Selbstverständlich! ;-)

Ich bitte um Entschuldigung für die verzögerte Antwort.
Ich stelle immer wieder fest, wie 'schwer' ausschließlich schriftliche Kommunikation ist. Schreiber und Leser haben unterschiedliche Denkweisen. Missverständnisse sind da vorprogrammiert.

Mit "verteilten Aufgaben" war gemeint: der fragende Client auf der einen Seite und der antwortende Server auf der anderen Seite.

Ich werde mich erst mal ganz allgemein mit dieser Thematik auseinandersetzen, bevor ich versuchen werde, eine passende Applikation zum Thema zu schreiben.

Dankeschön für Eure Geduld.
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: HowTo Client / Server?

Beitrag von mk-soft »

Worum geht es eigentlich ?

Bei SQL Datenbanken erledigen das die SQL Treiber.
Bei fremden Servern mit HTTP-Request (keine Datenbanken).
Alles andere selber programmieren.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten