A
DocShoe schrieb:
Ich habe da jetzt einiges debuggt und festgestellt, dass kein Threadwechsel stattfindet, ich weiß nicht wie die VCL das hinbekommt. Die Ausführung von dispatch und OnClientDisconnected passiert im gleichen Thread, trotzdem wird dispatch kurz von OnClientDisconnected unterbrochen.
Ist ja verrückt. Was sagt denn der Call-Stack? Speziell dann, wenn du mit der Debug-Version der VCL linkst (dann kannst du in VCL-Code hineinsteppen)?
DocShoe schrieb:
Ich könnte mir natürlich den Status jeder ClientSocket merken (z.B. IsDispatching und IsClosed) und in einem Timer prüfen, ob der Socket tot ist, aber das ist Gefrickel.
Ja. Allgemein habe ich mich nach einigen Problemen damit zum Eindruck durchgerungen, daß TClientSocket/TServerSocket allgemein Gefrickel sind, und meine Probleme stattdessen mit Indy gelöst. Es ist allerdings schon geraume Zeit (d.h., ~3 Jahre) her, daß ich mich mit Netwerkprogrammierung beschäftigt hätte.