Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Klasse TClientSocket im Thread. Timer soll kurz warten (https://www.delphipraxis.net/142553-klasse-tclientsocket-im-thread-timer-soll-kurz-warten.html)

Jackie1983 30. Okt 2009 08:47


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;

sirius 30. Okt 2009 08:51

Re: Klasse TClientSocket im Thread. Timer soll kurz warten
 
Kannst du den ClientSocket nicht blockierend machen?

Jackie1983 30. Okt 2009 09:00

Re: Klasse TClientSocket im Thread. Timer soll kurz warten
 
Zitat:

Zitat von sirius
Kannst du den ClientSocket nicht blockierend machen?

Laut Hilfe müste ich dann aber alle Lese- und Schreibvorgänge in einem separaten Thread ausführen.
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