AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy TCP Client - Verständnisproblem
Thema durchsuchen
Ansicht
Themen-Optionen

Indy TCP Client - Verständnisproblem

Ein Thema von DelphiPeter · begonnen am 10. Feb 2012 · letzter Beitrag vom 10. Feb 2012
Antwort Antwort
DelphiPeter

Registriert seit: 21. Dez 2007
Ort: Iserlohn
198 Beiträge
 
Delphi 2010 Professional
 
#1

Indy TCP Client - Verständnisproblem

  Alt 10. Feb 2012, 17:47
Hallo Zusammen!

Nach eurer Hilfe in Beitrag http://www.delphipraxis.net/166293-i...versenden.html verschicke ich nun vom Client ein Record an den Server, der wiederum antwortet mir immer auf das gesendete Record.

Nur scheinbar habe ich was generelles nicht verstanden.

Ich habe mit einen im Client einen Timer gebastelt, der mittels...

Delphi-Quellcode:
LIMClient.Socket.ReadBytes(Buf, SizeOf(TConnectionData));
BytesToRaw(Buf, Data, SizeOf(TConnectionData));
immer versucht, Daten zu lesen, die evtl. vom Server gensendet werden können.


Wie ist denn das. Gibt es beim IDTCPClient ein Ereignis das mir sagt - Hallo, es sind gerade Daten vom Server gekommen? Oder ist das mit dem Timer eine Lösung? Ich glaube ich habs prinzipiell nicht verstanden, wie das ganze arbeitet.

Kann mir jemand helfen?

Danke euch!

Peter


.. oder kurz gesagt: Schreibt mir der Server in den Client (wenn ja, wie bekomme ich das mit) oder muss ich vom Client her lesen (wenn ja, wo wäre das am besten, oder ist der Timer die Lösung)
Peter Majewski

Geändert von DelphiPeter (10. Feb 2012 um 18:02 Uhr)
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#2

AW: Indy TCP Client - Verständnisproblem

  Alt 10. Feb 2012, 18:20
So zB, den InputBuffer auf die größe Prüfen, wenn ja, ist was da.

Delphi-Quellcode:
procedure TCRMTCPClient.DoTimer(Sender: TObject);
var cmd : string;
begin try
        if FTimer.tag = 1 then exit;
        FTimer.tag := 1;

        if not Connected then
          begin
            Connect;

            if not Connected then
              begin
                FTimer.tag := 0;
                exit;
              end;
          end;

        if IOHandler.InputBuffer.Size = 0 then
          begin
            // ReadFromStack(true, 1, false);
            IOHandler.CheckForDataOnSource(1);
            if IOHandler.InputBuffer.Size = 0 then
              begin
                FTimer.tag := 0;
                exit;
              end;
          end;
        DoOnExecute;

        FTimer.tag := 0;
      except
        on e:exception do
          begin
            FTimer.tag := 0;
          end;
      end;
end;
Lars
  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 10:06 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