AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Indy TCP client empfangene Daten ausgeben
Thema durchsuchen
Ansicht
Themen-Optionen

Indy TCP client empfangene Daten ausgeben

Ein Thema von fox67 · begonnen am 15. Nov 2013 · letzter Beitrag vom 15. Nov 2013
Antwort Antwort
Seite 2 von 2     12   
fox67

Registriert seit: 6. Okt 2010
Ort: 72661 Grafenberg
181 Beiträge
 
Turbo Delphi für Win32
 
#11

AW: Indy TCP client empfangene Daten ausgeben

  Alt 15. Nov 2013, 13:03
Ich benutze selber immer noch einen TThread der sich um das Thema kümmert, damit die Hauptanwendung nicht blockiert wird.

Delphi-Quellcode:
TClientHandleThread = class(TThread)
  private
    msg : string;
    procedure HandleInput;
    protected
    procedure Execute; override;
  end;

procedure TClientHandleThread.HandleInput;
begin
    addlog(msg);
end;

procedure TClientHandleThread.Execute;
begin
    while not Terminated do begin
        if fmain.myindytcpClient.Connected then begin
            try
                msg:=fmain.myindytcpClient.ReadLn;
                Synchronize(HandleInput);
            except
            end;
        end;
    end;
end;

procedure fmain.myindytcpClientDisconnected(Sender: TObject);
begin
    try
        ClientHandleThread.Terminate;
    except
    end;
end;
und beim connecten auf den Server

Delphi-Quellcode:
ClientHandleThread := TClientHandleThread.Create(True);
                    ClientHandleThread.FreeOnTerminate := True;
                    ClientHandleThread.Resume;
Woher kommen die Daten denn?
Hab ich oben schon geschrieben. Hier ist ein Manual zu dem Server
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#12

AW: Indy TCP client empfangene Daten ausgeben

  Alt 15. Nov 2013, 13:05
Also...

Ein .Connect baut die Verbindung auf...

Danach besteht die Verbindung aber noch nicht... Das ist keine Procedure die Ausgeführt wird und wartet bis der Server Antwortet... Schau Dir mal die Ereignisse der Komponente an...
Bei den Indy TCP Komponenten blockiert Connect solange, bis die Verbindung aufgebaut wurde, sie vom Server abgelehnt wurde, oder das Connect Timeout abgelaufen ist ohne dass die Verbindung aufgebaut wurde.

OnConnect ist nur ein optionales Event, um Aktion nach dem Verbindungsaufbau auszuführen.

Indy unterscheidet sich in diesen Punkten von asynchronen Komponenten wie TClientSocket, bei denen es OnRead etc. gibt.
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#13

AW: Indy TCP client empfangene Daten ausgeben

  Alt 15. Nov 2013, 13:09
Hab ich oben schon geschrieben. Hier ist ein Manual zu dem Server
Und jetzt sollen wir gemäß der Docu für Dich die Routine schreiben?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#14

AW: Indy TCP client empfangene Daten ausgeben

  Alt 15. Nov 2013, 13:11
Und es gibt ein OnReceive... Was das wohl macht? Richtig, wird aufgerufen, wenn Daten vorliegen...
OnReceive wird nicht automatisch beim Datenempfang aufgerufen.

Das wird aufgerufen, wenn Daten empfangen werden, was aber erst durch den Aufruf der Read-Funktionen veranlasst wird.
Das ist also eine reine Logging-Funktion, bzw. zum "manipulieren" der übertragenen Daten, z.B. für eine Verschlüsselung.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#15

AW: Indy TCP client empfangene Daten ausgeben

  Alt 15. Nov 2013, 13:12
Hallo
ich würde gerne mit delphi Datenpakete die von einem TCP server versendet werden empfangen und in einer Memo ausgeben. Die Daten sehen so aus wie in diesem Manual Seite4. Die Daten werden konstant ohne Unterbrechung gesendet.
Mit Wireshark könnte man nachschauen, was tatsächlich gesendet wird. Eventuell wird ein anderer Zeilenseparator verwendet als bei ReadLn.

Oder ohne Wireshark: einfach in einer Schleife Byte für Byte lesen und ausgeben. Dann könnte man den Datenstrom im Debugger einfach mitlesen.
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#16

AW: Indy TCP client empfangene Daten ausgeben

  Alt 15. Nov 2013, 13:18
Und es gibt ein OnReceive... Was das wohl macht? Richtig, wird aufgerufen, wenn Daten vorliegen...
OnReceive wird nicht automatisch beim Datenempfang aufgerufen.

Das wird aufgerufen, wenn Daten empfangen werden, was aber erst durch den Aufruf der Read-Funktionen veranlasst wird.
Das ist also eine reine Logging-Funktion, bzw. zum "manipulieren" der übertragenen Daten, z.B. für eine Verschlüsselung.
Indy... OK... Ihr habt recht... Wer lesen kann ist klar im Vorteil
  Mit Zitat antworten Zitat
fox67

Registriert seit: 6. Okt 2010
Ort: 72661 Grafenberg
181 Beiträge
 
Turbo Delphi für Win32
 
#17

AW: Indy TCP client empfangene Daten ausgeben

  Alt 15. Nov 2013, 13:35
Hab ich oben schon geschrieben. Hier ist ein Manual zu dem Server
Und jetzt sollen wir gemäß der Docu für Dich die Routine schreiben?
Wer hat das gesagt? Ich hab die Datei nur hinzugefügt damit ihr euch ein Bild machen könnt und mir so besser helfen könnt. Mein Programmcode kommt aus dem Tutorial von der Seite Delphi treff.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 04: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