Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Telnetserver, abfrage ob daten vorhanden sind (Indy) (https://www.delphipraxis.net/170406-telnetserver-abfrage-ob-daten-vorhanden-sind-indy.html)

DelTurbo 15. Sep 2012 15:00


Telnetserver, abfrage ob daten vorhanden sind (Indy)
 
Hi,
ich habe schon folgende sachen probiert. Das problem ist, das immer erst true kommt wenn man Return drückt. Ich müsste aber feststellen ob einfach nur ein zeichen da ist.

Delphi-Quellcode:
AContext.Connection.IOHandler.CheckForDataOnSource(1000)

Delphi-Quellcode:
AContext.Connection.Socket.CheckForDataOnSource(1000)

Delphi-Quellcode:
AContext.Connection.Socket.Readable()


Danke im voraus

Klaus01 15. Sep 2012 18:33

AW: Telnetserver, abfrage ob daten vorhanden sind (Indy)
 
Hi,

kannst Du nicht das Ereignis onDataAvailable nutzen?
Zitat:

Declaration
property OnDataAvailable: TIdTelnetDataAvailEvent;
Summary
Specifies the event handler for processing data received from the host.
Description
OnDataAvailable is the TIdTelnetDataAvailEvent event handler used to handle data received from the host. OnDataAvailable processes and applies the data read with TelnetThread.
Applications must assign a procedure to the OnDataAvailable event handler to allow the TIdTelnet object to determine how data from the host is applied.
Grüße
Klaus

DelTurbo 15. Sep 2012 20:42

AW: Telnetserver, abfrage ob daten vorhanden sind (Indy)
 
hi,
erstmal danke für die antwort. Aber das gibt es bei mir leider nicht. Ich habe auf Lazarus mit indy 10.2.0.3 und auf delphi mit indy 10.5.7 geschaut. Wo hast du das denn her?

Nachtrag:
Das ist der Client, nicht der Server. Ich habs grad gefunden.

BUG 15. Sep 2012 21:41

AW: Telnetserver, abfrage ob daten vorhanden sind (Indy)
 
Vielleicht buffert der Client einzelnen Zeilen, guckst du hier und hier.

DelTurbo 16. Sep 2012 09:48

AW: Telnetserver, abfrage ob daten vorhanden sind (Indy)
 
Zitat:

Zitat von BUG (Beitrag 1183096)
Vielleicht buffert der Client einzelnen Zeilen, guckst du hier und hier.

Nein, leider buffert er nicht. Ich hatte da gestern abend auch kurz dran gedacht. Aber ich habe es grade probiert. Die Clients die ich nutzte schicken jeden Tastendruck raus.

Folgende Clients:
XShell 3
Putty
telnet

Man kann es auch daran erkennen:
1. Kann ich an den NICs erkennen das daten raus bzw. reingehen.
2. wenn ich auf unix connecte und "top" starte, kann ich einfach mit einem druck aus "q" wieder raus. OHNE Return dahinter.

Ich habe es auch schon mit einem einfachen TCPServer versucht. Das gleich problem.

Wenn ich wie du beschrieben hast in read springe, ist er "weg" bis ich return drück. Ich sitzte seit gestern morgen an dem problem. Habe zig internetseiten gelesen und komme einfach nicht weiter.

Wär toll wenn einer wüsste was ich falsch mache.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:12 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