![]() |
Server Client Lösung
Hallo,
habe mal eine Frage! Das Programm (Form1) läuft auf PC 1! Zum Form1: Wenn ich Button1 drücke, färbt sich das Panel1 rot! Wenn ich Button2 drücke, färbt sich das Panel1 gelb! Jetzt zur meiner Frage! Wenn das Programm (Form1) auch auf PC2(Netzwerk) läuft, und ich Button1 drücke, soll sich das Panel1 rot färben, aber auch das Panel1 auf dem PC1 soll sich ändern! Wie mache ich das? Also eine Server/Client Lösung oder so? Wie kann ich dieses umsetzten? |
AW: Server Client Lösung
Die Frage ist interessant und ich habe sie mir auch schon gestellt.
Siehe z.B. ![]() Grundsätzlich muss man die Datenebene und die GUI (Formularkomponenten) trennen. Du musst also eine Datenebene (ggf. einfach eine Datenbank) haben und dort den Wert "Color" speichern. Dann muss es natürlich eine Datenbindung der GUI an diese Datenschicht geben. Die GUI muss informiert werden, wenn es neue bzw. geänderte Daten gibt. Im einfachsten Fall holt sich der Client die Daten zyklisch ab. Das ist aber natürlich keine effektive Lösung. Wenn man die Daten nicht auf einen Farbwert begrenzt, sondern dort tausende Kunden, Bestellungen und Rechnungen verwaltet und wenn man im Client auf diese Daten über Objekte zugreifen will, dann wird das Ganze natürlich deutlich aufwendiger. Darüber hinaus müssen gleichzeitige (schreibende) Zugriffe von mehreren Clients verhindert werden. ORM´s wie mORMot, DORM oder Aurelius sollen einem diese Arbeit abnehmen. Hilfreich ist dann natürlich, wenn man ein Databinding zwischen den Objekten und der GUI nutzen kann. Je größer das Projekt wird, um so anspruchsvoller wird wohl eine entsprechende Umsetzung (vom Zeitverhalten her). Ich würde mir wünschen, dass Delphi hier ein "Rundum-Sorglos-Paket" an Bord hätte. Mit den ganzen Dingen will ich mich demnächst näher befassen.... (EDIT: Ich bin davon ausgegangen, dass es nicht wirklich darum ging, einzelne Werte auszutauschen, sondern eine gemeinsame (umfangreiche) Datenbasis zu nutzen.) |
AW: Server Client Lösung
Mit Hilfe der Indy-Komponenten kannst du sowas realisieren. Im Forum solltest du massigst Informationen und einige Tutorials darüber finden, wie zwei Programme über das Netzwerk miteinander kommunizieren können.
|
AW: Server Client Lösung
Stichwort könnten sein TCP/IP, UDP, Named Pipes ...
|
AW: Server Client Lösung
|
AW: Server Client Lösung
Ohne Polling kann man diese Aufgabenstellung lösen indem man auf einem einfachen Chatprogramm aufbaut.
|
AW: Server Client Lösung
MessageQueuing via MSMQ oder ActiveMQ wäre auch eine gute Lösung.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz