Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Indy Server und Client

  Alt 28. Apr 2014, 23:00
Ich versuche, das mal korrekt zusammen zu fassen - so dass ich es auch verstehe.

Über die Indys fragt normalerweise der Client1 oder Client2 beim Server an.
Der Server startet einen Thread, berechnet darin die Antwort (man sollte also im OnExecute nicht auf die GUI o.ä. zugreifen ohne vorher Konflikte abzusichern) und schickt die Antwort an den anfragenden Client zurück.
Nach einer gewissen Zeit räumt der Server dann zyklisch den verbrauchten Speicher bzw. die Verbindungen wieder auf.
Deshalb ist es grundsätzlich besser, selten größere Datenpakete zu übertragen als extrem oft kleine.

Wenn der Server von sich aus eine Nachricht an einen Client senden will wird das schwieriger.
Zum einen muss der Server alle Clients kennen (Details kann ich nicht beschreiben) und die Server müssen dauernd lauern, ob eine Nachricht anliegt.
Alternativ können alle Clients natürlich auch zyklisch beim Server anfragen "Hey, hat jemand bei Dir Button1 gedrückt", worauf ja oder nein zurück kommt.
Welches der beiden Varianten der bessere Weg wäre kann ich nicht sagen.

Grundsätzlich ist Indy aber wohl eher auf Frage(hin)-Antwort(zurück) ausgerichtet.
Man könnte sonst noch beide Seiten mit jeweils einem Server und einem Client ausstatten.
Für so etwas wie Chats sollten aber Sockets (peer to peer) effektiver einsetzbar sein.


(Ich lasse mich gern korrigieren, wenn das noch nicht ganz passt.)



[EDIT]
Schau mal noch hier: http://www.delphipraxis.net/180134-i...ptimieren.html
Das könnte nützlich sein.

[EDIT2]
Oups, jetzt habe ich irgendwie den Überblick über die Indy-Beiträge verloren.
mjustin hat Deine Frage unter #3 ja fast beantwortet.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (28. Apr 2014 um 23:28 Uhr)
  Mit Zitat antworten Zitat