Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Anfängerfrage: Non Blocking TCP Client in einem Thread (https://www.delphipraxis.net/144300-anfaengerfrage-non-blocking-tcp-client-einem-thread.html)

alzaimar 5. Dez 2009 18:03

Re: Anfängerfrage: Non Blocking TCP Client in einem Thread
 
Zitat:

Zitat von sirius
Wenn der ClientThread nicht aus dem Mainthread gestartet wird, solltest du jegliches Synchronize vermeiden.

Dann wird der 'OnConnected' Handler des TClientSockets aber nicht aufgerufen. Na, ich kanns nochmal testen oder poste mal den Code hier rein. Bin nur gerade aufm Flughafen. Poste das später mal rein.

sirius 5. Dez 2009 20:13

Re: Anfängerfrage: Non Blocking TCP Client in einem Thread
 
Zitat:

Zitat von alzaimar
Zitat:

Zitat von sirius
Wenn der ClientThread nicht aus dem Mainthread gestartet wird, solltest du jegliches Synchronize vermeiden.

Dann wird der 'OnConnected' Handler des TClientSockets aber nicht aufgerufen.

Wieso das?

Astat 7. Dez 2009 22:46

Re: Anfängerfrage: Non Blocking TCP Client in einem Thread
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo alzaimar, das mit den Asynchronen (Windows Messages) Sockets, in einem eigenen Thread,
ist bei sauberer Implementierung ja möglich (siehe meinen vorigen Post). Ich würde es aber nicht so komliziert angehen.

Erstell einen Thread, in diesem verwendest du ein paar Zeilen Socket-API (nicht die aufgeblasene TClientSocket Komponente).
Du implementierst eine Sendeprozedure, diese löst ein Event aus und weckt den Thread auf.
Dann sendest Du im Execute die Daten, und wartest im Recv bis der Server antwortet.
Dann triggerst du die Callback mit den gelieferten Daten.

Solange du keine Globalen Variablen in der Callback oder visuelle VCL Objekte verwendest,
brauchst du nicht mal Synchronisationsobjekte implementieren.


Sieh dir das beigelegte Demo an, ist einfach, robust und vor allem unkompliziert.

Tip:

So ungefähr das Verständlichste und Brauchbarste API Tutorial ist unter folgendem Link verfügbar:

http://www.delphi-treff.de/tutorials...ets-mit-winapi

Hoffe dies alles hilft etwas.

lg. Astat


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 Uhr.
Seite 2 von 2     12   

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