AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke indy Server und Client komponente
Thema durchsuchen
Ansicht
Themen-Optionen

indy Server und Client komponente

Ein Thema von youuu · begonnen am 6. Feb 2012 · letzter Beitrag vom 8. Feb 2012
 
mjustin

Registriert seit: 14. Apr 2008
3.008 Beiträge
 
Delphi 2009 Professional
 
#7

AW: indy Server und Client komponente

  Alt 8. Feb 2012, 16:58
Hier die stromsparende Variante, nach http://stackoverflow.com/a/544473/80901 (unter Berücksichtigung der Anmerkungen von Remy Lebeau):

Delphi-Quellcode:
procedure TFormMain.IdTCPServerExecute(AContext: TIdContext);
var
  RxBuf: TIdBytes;
begin
  RxBuf := nil;
  with AContext.Connection.IOHandler do
  begin
    if InputBufferIsEmpty then
    begin
      CheckForDataOnSource(10);
    
      if InputBufferIsEmpty then
      begin
        Exit;
      end;

      InputBuffer.ExtractToBytes(RxBuf);

      // process RxBuf as needed...

    end;
  end;
end;
p.s. in diesem Beispiel sendet der Client einen Request, der dann vom Server verarbeitet wird.

Es kann aber im OnExecute Handler als erstes eine Nachricht an den Client gesendet werden. Zum Beispiel, wenn der Server eine interne Queue von Daten hat, die er nach und nach an den Client senden soll.

In diesem Fall würde der OnExecute Handler anders aufgebaut:

* hole ein Element aus der Queue
* falls kein Element vorhanden war, Exit
* sonst: schreibe die Daten an den Client - AContext.Connection.IOHandler.WriteLn(Daten);
* fertig (es sei denn, eine "synchrone" Quittung des Clients wird benötigt, dann weiter mit CheckForDataOnSource(TimeOut);
Michael Justin
habarisoft.com

Geändert von mjustin ( 9. Feb 2012 um 13:53 Uhr)
  Mit Zitat antworten Zitat
 


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 05:43 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 by Thomas Breitkreuz