AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Klasse TClientSocket im Thread. Timer soll kurz warten
Thema durchsuchen
Ansicht
Themen-Optionen

Klasse TClientSocket im Thread. Timer soll kurz warten

Ein Thema von Jackie1983 · begonnen am 30. Okt 2009 · letzter Beitrag vom 30. Okt 2009
Antwort Antwort
Jackie1983

Registriert seit: 12. Mär 2007
486 Beiträge
 
#1

Klasse TClientSocket im Thread. Timer soll kurz warten

  Alt 30. Okt 2009, 08:47
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;
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Klasse TClientSocket im Thread. Timer soll kurz warten

  Alt 30. Okt 2009, 08:51
Kannst du den ClientSocket nicht blockierend machen?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Jackie1983

Registriert seit: 12. Mär 2007
486 Beiträge
 
#3

Re: Klasse TClientSocket im Thread. Timer soll kurz warten

  Alt 30. Okt 2009, 09:00
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:54 Uhr.
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