Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#25

AW: BMP bzw. Stream Indy TCPServer an alle verbundenen Clients schicken

  Alt 8. Okt 2020, 20:25
Das Senden von IdTCPServer habe ich erst mal so gemacht:
Das ist soweit ok, wenn der Client nichts anderes macht als die Bitmaps zu empfangen. Es hat allerdings zwei Nachteile: es wird nur ein Bild gleichzeitig gesendet, wenn es mehrere Clients gibt, dann werden sie nicht parallel mit Daten beliefert, sondern einer nach dem anderen. Und dann ist OnExecute Methode tabu oder wird komplizierter: in OnExecute darf natürlich nicht in den Socket geschrieben werden, während das Bild übertragen wird.

Best practice ist daher, jeder Connection eine Queue zuzuordnen, in der über den Hauptthread Bilder hinzugefügt werden und die dann in OnExecute abgearbeitet wird. Die Clients werden dann parallel Daten erhalten, und die gesamte Steuerung der Kommunikation befindet sich in OnExecute.

Wie man bei Indy weitere Attribute (wie z.B. eine Queue, oder Benutzernamen...) an die eingehenden Connections 'antackert' poste ich später. Es gibt einige Posts bei Stackoverflow in denen das beschrieben wird.
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat