Einzelnen Beitrag anzeigen

mjustin

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

AW: TCPClient+SSL, Blockierendes Read -> Disconnect -> AV

  Alt 11. Mär 2014, 16:49
Zitat:
Da das Lesen schon in einem eigenen Thread läuft, wird der Hauptthread (sofern keine "Synchronize"-Fehler gemacht werden) nicht blockiert.
Ja, aber wenn man die Zugriffe absichern würde, dann würde die CriticalSection den anderen Thread blockieren.
Daher mein Vorschlag je Richtung eine threadlokale Komponente zu verwenden.

Man kann auch in beide Richtungen einen Server-Client aufmachen, dann brauchst du nicht zu pollen, da der "Server" im Client dann via Empfangsereignis reagiert.
Indy hat im Gegensatz zu anderen Komponenten kein Epfangsereignis. Wenn der Server etwas an den Indy Client sendet, liest man diese Daten aus dem Socket (über IOHandler.Read). Dies kann je nach verwendetem Protokoll in einer Schleife geschehen. Eine andere Möglichkeit gibt es mit TCP generell nicht - man muss immer eine Leseoperation auf den Socket machen, um Daten von der Gegenseite zu erhalten. (Das ist kein "Pollen", da man dabei keine Pakete an den Server sendet.)
Michael Justin
  Mit Zitat antworten Zitat