Einzelnen Beitrag anzeigen

romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#10

AW: Indy TCP Client/Server: spontan Nachricht an den Server senden?

  Alt 10. Jun 2013, 12:49
Der Hauptaufwand liegt darin, dass durch einen zweiten Thread (der nur für das Empfangen von Daten zuständig ist) bedingt wird, die Kommunikation mit dem Hauptthread threadsicher zu gestalten. Der erforderliche Aufwand hängt davon ab, wie komplex die notwendige Kommunikation zwischen dem Hauptthread und dem Lesethread ist.
Sehr kompliziert muss es nicht sein. Beim erfolgreichen Login wird ein Client-Object erzeugt, der neben der Referenz auf den IdContext des Sockets noch eine zusätzliche Variable für den neuen Thread enthält. Dieser Objekt wird wiederrum an IdContext des Sockets angehängt. Dann erstelle ich den Lesethread und lasse ihr auf die IdContext-Referenz des Hauptthreads zugreifen. Beim Freigeben des Hauptthreads prüfe ich, ob Lesethread existiert und beende ihn. Wäre das so threadsicher oder habe ich was vergessen?

Muss ich in beiden Threads aud IOHandler zugreifen oder kann ich irgendwie direkt auf Lese- bzw. Schreibstrem zugreifen?
  Mit Zitat antworten Zitat