![]() |
TCPClient OnReceive Ereigniss
Hallo miteinander
Bei der TCPClient Komponente gibt es ja das Ereigniss OnRecieve. Das Ereigniss wird bei mir aber nicht ausgelöst. Wenn ich mit TCPClient.Recieveln() auslese, bekomme ich Daten zurück. Die Daten kommen also an. Weiss jemand wieso es nicht ausgelöst wird?? Gruss und danke Selecta |
Re: TCPClient OnRecieve Ereigniss
Hallo Selecta,
wenn du mit Indy 9 arbeitest, dann könnte ![]() Grüße vom marabu |
Re: TCPClient OnRecieve Ereigniss
sali marabu
Nein ich brauche die Indy Komponente nicht ("noch nicht"). Habs jetzt mal nur mit dem TCPClient gemacht. Wenn ich deinen Post richtig verstehe, ist das ein Ereigniss, dass zwar aufgeführt ist, aber eigentlich gar nichts macht? o_O Könnte man sonst irgendwie ein Ereigniss (Interupt) auslösen, wenn Daten empfangen wurden? |
Re: TCPClient OnRecieve Ereigniss
Der andere Beitrag handelte zwar von der HTTPClient-Komponente, aber die Ereignisse OnReceive() und OnSend() werden in TCPClient deklariert - HTTPClient ist von TCPClient abgeleitet. Wenn du die Quellen hast, kannst du das leicht ändern - denke ich.
marabu |
Re: TCPClient OnRecieve Ereigniss
sry, aber ich kann dir leider nicht ganz folgen...
|
Re: TCPClient OnRecieve Ereigniss
Hi Selecta.
Umformulierung von Marabus Beitrag: Es gibt eine Ereignis-Property OnReceive bzw OnSend, aber im Quellcode von TCPClient wird beim Senden/Empfangen nie dieses Ereignis ausgelöst. Wenn du den Indy-Quellcode hast, kannst du ihn aber so abändern, dass das Ereignis ausgelöst wird. Verständlicher? |
Re: TCPClient OnRecieve Ereigniss
und wie!
danke :) ich schaus mir mal an |
Re: TCPClient OnRecieve Ereigniss
Hallo Selecta,
habe nochmal im Quelltext geforscht. TCPClient hat keine Methode ReceiveIn(). Welche Komponente verwendest du? Welche Delphi Version? Die Methoden Receive() und Send() sind bei Indy 9 in den Intercept-Komponenten deklariert, nicht wie oben von mir geschrieben in TCPClient. Das Ereignis OnReceive() wird von der Komponente IdCompressionIntercept ausgeschaltet, im Basistyp wird es korrekt bedient. marabu |
Re: TCPClient OnRecieve Ereigniss
Hi Selecta.
Zwischenfrage: Benutzt du überhaupt die Indy-Komponenten? :gruebel: |
Re: TCPClient OnRecieve Ereigniss
Zitat:
|
Re: TCPClient OnRecieve Ereigniss
Hi.
Quellcode for i := 1 to 100 do :wall:; Natürlich... Die Socket-Komponente... :wall: PS: Hab mal kurz im Source gestöbert. Das Ereignis müsste eigentlich aufgerufen werden... :gruebel: |
Re: TCPClient OnRecieve Ereigniss
Schaut mal alle weg - dann lösche ich schnell meine Beiträge in diesem thread...
marabu PS: Das Ereignis OnReceive() der BaseSocket-Komponente wird laut Quelltext korrekt bedient. |
Re: TCPClient OnReceive Ereigniss
guten morgen
Genau die Socket-Komponente. Wird das Ereignis erst nach einem Lesen-Befehl abgearbeitet? Habe gerade gesehen, dass das Ereigniss nach einem Receiveln() bearbeitet wird... Eigentlich sollte es wenn Daten angekommen sind, ausgelöst werden? Oder ist das nur eine Art Eingangsbehandlungsroutine der Daten, die der Socket jeweils empfangen hat? :hi: |
Re: TCPClient OnReceive Ereigniss
Hallo Selecta,
OnReceive() wird nach dem erfolgreichen Empfang der Daten aufgerufen, damit du deinen magic code darauf wirken lassen kannst. marabu |
Re: TCPClient OnReceive Ereigniss
Sali marabu
Was verstehst du genau unter dem erfolgreichen Empfang der Daten? Sry, aber hatte nie Netzwerktechnik ;) |
Re: TCPClient OnReceive Ereigniss
Die von der Komponente gekapselte function recv() aus der WinSocket library wird zuerst aufgerufen, danach stehen die Daten im buffer bereit. Damit du jetzt zum Beispiel Kompression bzw. Dekompression behandeln kannst, bekommst du im event handler eine Chance - aber nur wenn es keinen Netzwerkfehler gab.
marabu |
Re: TCPClient OnReceive Ereigniss
ah ok
Es liegt ein Fehler an. :stupid: Gibt es in der OH eine Legende mit den Fehlercodes? Danke vielmals für die Hilfe marabu |
Re: TCPClient OnReceive Ereigniss
Du hast doch die Quelle von WINSOCK.PAS, suche da mal nach WSABASEERROR. Da solltest du alles finden was du brauchst.
Oder schau mal ![]() marabu |
Re: TCPClient OnReceive Ereigniss
hallo, ich verwende auch ttcpclient und bei mir wird das OnReceive event auch nicht ausgelöst.
aber tcpclient1.Receiveln komm ich an die empfangenen daten ran. aber warum onreceive nicht ausgelöst wird habe ich leider immernoch nicht verstanden. könnte mir das jemand erklären? mfG matrix scripter |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:51 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