Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Checkbox und andere Kleinigkeiten (https://www.delphipraxis.net/111228-checkbox-und-andere-kleinigkeiten.html)

Socke_SG 31. Mär 2008 21:11


Checkbox und andere Kleinigkeiten
 
Hi zusammen,

ich bin nicht sicher, ob es eine ähnliche Anfrage schon einmal gegeben hat, aber mit der Suchfunktion hab ich jedenfalls nichts gefunden was mir wirklich weiterhilft.

Ich möchte ein Programm schreiben, das sowohl chatten ermöglicht (was bereits ausreichend funktioniert) und, das bestimme Informationen, die alle Clients beeinflussen können weiterleitet. Beispielsweise den Zustand einer CheckBox. Es soll so aussehen, dass wenn der Client einen bestimmten Button drückt eine Überprüfung stattfindet, ob der Server (oder ein anderer Client) beispielsweise eine Checkbox aktiviert hat. Wenn ja soll eine bestimmte Information angezeigt werden, ansonsten was anderes.

Hab jetzt schon einige Sachen ausprobiert und am geeignetsten dafür halte ich wohl etwas wie SendBuf, nur irgendwie krieg ich das damit nicht wirklich gebacken...weiss nicht genau wass ich für Count angeben soll. Hatte es so versucht Zustandsabhängig von der Checkbox einer Variablen eine Zahl zuzuordnen, diese soll weitergeleitet werden...aber es kommt immer "Nicht genug wirkliche Parameter" was wohl auch an dem fehlenden Count liegen kann, aber was geb ich da dann an?

Hoffe Ihr versteht was ich meine... Vielleicht kann mir ja jemand helfen, beispielsweise mit nem Beispiel-Quellcode.
Hab früher viel mit Delphi gemacht, aber sowas bisher noch nie, daher ist das etwas schwierig :-D

mfg
und Danke im Voraus

mkinzler 31. Mär 2008 21:30

Re: Checkbox und andere Kleinigkeiten
 
Der Client könnte den Zustand der CheckBox o.ä. bzw. dessen Änderung dem Server mitteilen, der andere Client könnte ihn dann beim Server abfragen.

Socke_SG 31. Mär 2008 21:32

Re: Checkbox und andere Kleinigkeiten
 
Okay, und wie genau kann ich das realisieren? Weisst du das zufällig? Bin ich mit SendBuf überhaupt auf dem richtigen Weg?

mkinzler 31. Mär 2008 21:34

Re: Checkbox und andere Kleinigkeiten
 
Ich vermute mal es geht um anwesend/abwesend o.ä.

Wie funktioniert die Kommunikation zwischen Client/Server?
Läuft diese über den Server oder peer-by-peer ?

Socke_SG 31. Mär 2008 21:36

Re: Checkbox und andere Kleinigkeiten
 
Ja in etwa so...

Nunja, Basis für das Programm ist ein Demo-Programm von Delphi. Dabei verbinden sich die Clients mit dem Server über Angabe der IP oder des Computernamens.

Aber nur damit es nicht zu Verwirrungen kommt....das Programm soll quasi so funktionieren:

Der Server oder ein Client ändert eine gewisse Größe (Bsp: Checkbox-Zustand)... Wenn ein anderer Client EINEN Bestimmten Button drückt, der dieser bestimmten Checkbox entspricht, soll eine Information erscheinen.

sx2008 31. Mär 2008 21:46

Re: Checkbox und andere Kleinigkeiten
 
Du musst dir ein Protokoll ausdenken!
Ohne Protokoll ist das Ganze zum scheitern verurteilt.
Schreib dir alle Befehle auf, die der Client an den Server senden könnte (z.B. LOGIN , LOGOUT, USERLIST, KILL USER, UPLOAD, SETVAR xy=...)
Mit SETVAR kann der Client bestimmte Variablen auf dem Server ändern.

Der Server muss auf diese Befehle antworten (z.B. OK, ERROR ..., STATUS, ...)
und hat auch eigene Befehle (TEXT xy "das ist der Text, den User xy eingetippt hat", ... )

Socke_SG 31. Mär 2008 21:50

Re: Checkbox und andere Kleinigkeiten
 
Hmm...okay. Und wie übertrage ich das dann? Mein Problem ist, dass ich nicht weiss wie ich das genau realisieren soll...

sx2008 31. Mär 2008 22:58

Re: Checkbox und andere Kleinigkeiten
 
Zitat:

Zitat von Socke_SG
Hmm...okay. Und wie übertrage ich das dann?

Du hast doch schon eine bestehende Chat-Lösung. Nur wird bei dieser alles wás beim Client eingegeben wird sofort beim Server angezeigt (oder der Server sendet die Daten gleich an alle anderen Clients und diese zeigen den Text an).
Angenommen der Client sendet LOGIN Socke
Der Server analysiert die Daten bis zum Carriage-Return (der Abschluss für jeden Befehl).
Erkennt er "LOGIN" extrahiert er das, was danach kommt (der Username) und ruft seine Login-Funktion auf.
Wenn die Login-Funktion ihr ok gibt, sendet der Server an den Client: OK
andernfalls: ERROR login failed

Irgendwo hier auf der DP wurde schon mal so ein Parser für Befehle vorgestellt; vielleicht weiss ja noch jemand, wo der Artikel ist.
Die Befehle von oben sind nur eine Möglichkeit, man kann z.B. auf XML-Daten verschicken.
XML hat den Vorteil, dass man es beliebig ausbauen und erweitern kann; Nachteil ist die grössere Datenmenge und die Komplexität (nix für Anfänger).

Nachtrag: für den Anfang braucht man die Daten nicht mal übers Netzwerk übertragen.
Angenommen du hast ein Programm mit 3 Formularen (2 * Client, 1 * Server)
Jedes Formular hat folgende Funktion:
Delphi-Quellcode:
procedure DataIn(const daten:string);
Dann kannst du alles ohne Netz als Trockenübung in einem Prog. testen.
Später werden die Daten über TCP/IP gesendet anstatt DataIn direkt aufzurufen.

Socke_SG 31. Mär 2008 23:57

Re: Checkbox und andere Kleinigkeiten
 
Ok und wodurch könnte ich hinterher das DataIn genau ersetzen? Bzw. wie sähe die ganze Befehlszeile dafür aus?

Also Beispielsweise sowas wie

ServerSocket.Socket.SendWASAUCHIMMER.....

bin da im Moment irgendwie mit überfordert :-) sry

sx2008 1. Apr 2008 00:29

Re: Checkbox und andere Kleinigkeiten
 
Zitat:

Zitat von Socke_SG
Ok und wodurch könnte ich hinterher das DataIn genau ersetzen? Bzw. wie sähe die ganze Befehlszeile dafür aus?

Also Beispielsweise sowas wie

ServerSocket.Socket.SendWASAUCHIMMER.....

Delphi-Quellcode:
var daten:string;
...
daten := 'LOGIN test'+#13;
ServerSocket.Socket.SendBuf(daten[1], length(daten));
Hier gibt's ein Chatprog. + Beschreibung zum einstieg: http://www.informatik-treff.de/mater...chat/chat.html


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:47 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz