![]() |
Klasse TClientSocket im Thread. Timer soll kurz warten
Servus,
ich habe eine Threadklasse dort ist der Client enthalten (TClientSocket). Die Daten zum senden werden in einer list im Timer abgearbeitet. Wenn Daten da sind wird ein Ping gesendet.... dann 10 Sekunden warten auf Pong Zur Zeit mache ich es mit einer schleife und warte per sleep(10) bis ich ein Pong erhalten habe. Wenn Pong da, dann daten senden, wenn nicht verbindung trennen. Aber wenn ich sleep im thread verwende wird ja auch die ClientSocket schlafen gelegt, nur ich weis nicht wie ich warten kann so das der socket weiter arbeiten kann und weiter daten empfanken kann und vor allem das Pong. Im Protokoll vom server sehe ich das er den Pong in der gleichen Sekunde schickt wie er das Ping erhalten hat. Am Server liegt es nicht. Mfg //Methode 2 Was meint ihr dazu, ich glaube das ist viel einfacher
Delphi-Quellcode:
//pseudocode
ThreadClient.DatenSenden(daten) begin if not ClientVerbunden then connect; cs.enter; fbuffer.add(daten); cs.leave; sendePing; //warten auf pong end; ThreadClient.Read; begin if cmdFromServer = Pong then begin SendeDatenZumServer(fbuffer); end; end; |
Re: Klasse TClientSocket im Thread. Timer soll kurz warten
Kannst du den ClientSocket nicht blockierend machen?
|
Re: Klasse TClientSocket im Thread. Timer soll kurz warten
Zitat:
Das möchte ich eigentlich nicht weil ich dann wieder 2 Threads habe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz