daubes
Goto Top

Delphi 7 UDP empfangen

Hallo,

ich will überprüfen ob auf einem Port Traffic ist. Also empfange von einem Rechner auf meinem Daten. Will an sich nur anschauen ob welche ankommen. Was für Inhalt die Daten haben ist mir quasi egal... Habe hier einmal ein Wenig Quellcode - der natürlich nicht funktioniert...

Hallo,

ich will überprüfen ob auf einem Port Traffic ist. Also empfange von einem Rechner auf meinem Daten. Will an sich nur anschauen ob welche ankommen. Was für Inhalt die Daten haben ist mir quasi egal... Habe hier einmal ein Wenig Quellcode - der natürlich nicht funktioniert...


procedure TForm1.Timer1Timer(Sender: TObject);
var get : string;
begin
get := IdUDPClient1.ReceiveString(0);
Label1.Caption := get;
end;


Mit diesem hätte ich gerne erreicht, dass er mir einfach was er so bekommt ausgibt...


IdUDPClient1 hat folgende Eigenschaften:


Active = True

BroadcastEnabled = False

BufferSize = 8192

Host = -NICHTS-

Name = IdUDPClient1

Port = 41001 (eben diesen möchte ich kontrollieren)

ReceiveTimeout = -2

Tag = 0


Habe auch bei host schon meine eigene IP gehabt...


Bin für jede Hilfe dankbar...


Gruß

Content-Key: 137440

Url: https://administrator.de/contentid/137440

Printed on: April 19, 2024 at 23:04 o'clock

Member: mrtux
mrtux Mar 04, 2010 at 17:18:27 (UTC)
Goto Top
Hi !

Nene min Jung, wie Du ja schon gemerkt hast funktioniert das so nicht!
Das Indy-Client Objekt kann eine UDP-Session nur direkt zu einem Server herstellen. Wie ich das verstanden habe, ist das was Du machen willst sniffen und da sehe ich keinen Sinn darin, das Rad nochmal neu zu erfinden zu wollen, denn solche Tools gibt es schon...

mrtux
Member: Daubes
Daubes Mar 04, 2010 at 19:27:02 (UTC)
Goto Top
hi,
okii danke schon mal...
naja ich will ja damit dann schon was anfangen - aber an sich reicht mir ein "true and false". hast du einen kleinen quellcodeansatz?

gruß
Member: mrtux
mrtux Mar 05, 2010 at 13:46:31 (UTC)
Goto Top
Hi !

Zitat von @Daubes:
naja ich will ja damit dann schon was anfangen - aber an sich reicht mir ein "true and false". hast du einen kleinen

Also nochmal ganz von vorn, was genau möchtest Du machen? Willst Du einen Server überwachen, ob er online ist oder möchtest Du ALLE UPD-Pakete die an den Server gehen mitloggen?

quellcodeansatz?

Das ist gar nicht nötig, denn es gibt eine Demo von den Entwicklern der Lib. Es zeigt eine einfache Serversession für das Indy TCP-Client Objekt, welches Du in der UDP-Variante deinem Quellbeispiel verwendet hast. Das Demo ist sicherlich auch auf das UDP-Objekt (nur der Richtigkeit halber: Bei Delphi spricht man ja von (VCL-) Komponenten) anwendbar. Es ist aber nur eine Konsolen App, die Du aber ganz einfach fürs GUI umschreiben kannst bzw. daran kannst Du sehen wie es funktioniert und Du es in deiner App einsetzen kannst.

Und natürlich gibt es noch andere Netzwerk-LIBs für Delphi aber da möchte ich besser auf eine Suchmaschine verweisen, da die dann allesamt andere Möglichkeiten bieten und die Methoden und Funktionen anders aufgebaut sind.

Ich habe dir mal ein paar Links mit mehr Input:
1. Die Indy KB
2. Die Demo Site: Das drittletzte in der Liste ist das besagte TCP-Client Demo.
3. Ein Forum
4. Noch ein Forum

Ich hoffe ich bekomme kein aufs Dach, wenn ich hier andere Foren verlinke, es sind aber Foren speziell für Delphi Entwickler.

mrtux
Member: Daubes
Daubes Mar 08, 2010 at 07:26:41 (UTC)
Goto Top
Hi,
ich will ein Programm schreiben dass merkt wenn ein PC im Netzwerk ist - klar ginge das durch vieles andere, aber es soll geprüft werden ob eine Anwendung gestartet ist. Ist dies der Fall schalte ich dem Testrechner den strom wieder ab und starte diesen neu. Das ganze soll so 2000 mal passieren. Also ein kleiner Test wie ein Gerät auf hartes Abschalten reagiert. Wichtig ist eben dabei, dass die Anwendung startet. Da erst ganz zum Schluss Datenpakete über UDP gesendet werden, muss ich das prüfen...


Nun mach ich mich mal wieder ans Werk.... Danke aber schon mal - hoffe ich komme weiter..+

Gruß