Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi UDP mit Indy oder was anderem (https://www.delphipraxis.net/57927-udp-mit-indy-oder-anderem.html)

Surrounder 28. Nov 2005 20:46


UDP mit Indy oder was anderem
 
Hallo Forum,

also ich such jetzt schon eine ganze weile und hab auch postings gefunden, nur klappt das bei mir nicht. Ich hab folgende Situation, ich muss über einen UDP Broadcast etwas vom PC verschicken, alle Hardwarekomponenten die sich angesprochen fühlen schicken mir dann darauf etwas zurück.

Ich arbeite mit Delphi 2005 Professional und den dabei enthaltenen Indy Komponenten ( 10 ). Ich hab jetzt also die IdUdpClient Komponente genommen und den Broadcast verschickt. Klappt auch wunderbar, ich sehe mit dem Ethereal dass die Daten raus gehen und die Hardware auch Antwortet.

Dann hab ich festgestellt dass ich mit dem Client nix Eventgesteuert empfangen kann ( was ich ja muss, weil ich ja nicht genau sagen kann wieviele Devices sich melden ). Also hab ich den IdUdpServer verwendet, und dachte ich kann mit dessen Event nutzen wenn neue Daten kommen, nur bekomme ich das nicht gebacken. Das Event wird bei mir nicht ausgelöst, ich hab den Server aktiviert, aber es geht nicht. Ich hab bei den Bindings in den Properties schon die loakel IP des PCs und als Ports ANY eingestellt, aber das Event kommt nicht. Ich kann doch keinen festen Port zuweisen oder? Weil ich weiss ja nur an welchen Port der Broadcast raus geht, auf welchem Port ich das verschicke bzw. wieder zurück bekommen weiss ich ja erst wenn ich es verschickt habe.

Ich hab jetz keinen Code hier gepostet, weil das Senden über den IdUdpClient geht ja, und beim Server ist nur das OnUdpRead Event drin, darin mach ich aber noch nix sinnvolles.

Danke für jeden Tip

DGL-luke 28. Nov 2005 21:03

Re: UDP mit Indy oder was anderem
 
überallhin senden: 255.255.255.255
von überallher horchen: 0.0.0.0

wies mit den ports aussieht, weiss ich aber nicht so genau....

Surrounder 28. Nov 2005 21:25

Re: UDP mit Indy oder was anderem
 
Überall hin senden mach ich ja, ich nutze ja den Aufrug IdUdpClient.Broadcast. Und dann geht die Anfrage ja an die 255.255.255.255 nur den Port den die Anfrage nutzt den kann ich ja nicht bestimmen. Ich kann nur den Zielport bestimmen, auf dem meine Clients hören.

Dieser Broadcast wird von den vorhandenen Hardwareboxen im Netzwerk ausgewertet und die schicken mir dann alle gezielt an meine IP eine Antwort zurück. Wie kann ich diese Antwort jetzt bekommen?

Surrounder 29. Nov 2005 06:59

Re: UDP mit Indy oder andere Komponente / Empfangsproblem
 
Bin ich der erste der veruscht mit Indy und UDP was zu empfangen? Kennt jemand eine andere Komponente die funktioniert? Es muss doch möglich sein per UDP was zu empfangen ohne zu wissen wann das Paket kommt, das ist doch der Sinn von UDP...

Surrounder 30. Nov 2005 13:26

Re: UDP mit Indy oder was anderem
 
Also für den Fall dass es mal jemand sucht, ich habs jetzt zwar immer noch ein Problem aber so grob geht es jetzt.

Eigentlich sollt man ja meinen dass man über einen Client etwas versendet und über den Server etwas empfangen sollte. Nur wenn man mit dem Server die Antwort eines anderen auf einen Broadcast empfangen will, dann muss man den Broadcast auch mit dem Server versenden. Dann geht es auch, ansonsten wird das Read Event nicht ausgelöst.

Was momentan noch nicht geht, der das Event kommt nicht wenn ein Device mit einer IP aus einem anderen Subnet auf den Broadcast an den Server Antwortet, das heißt ich finde das Devce zwar ( ich sehe dass es Antwortet wenn ich mit Ethereal mitschneide ) aber ich kann die Antwort nicht auswerten weil ich das Event nicht bekomme. Hat da jemand eine Idee?

meolus 20. Mai 2006 21:50

Re: UDP mit Indy oder was anderem
 
http://www.delphipraxis.net/internal...=541500#541500

Surrounder 21. Mai 2006 09:05

Re: UDP mit Indy oder was anderem
 
Habs in der Zwischenzeit auch gelöst, das Problem liegt ganz wo anderst. Dir Windows Firewall blockt das Antwortpacket wenn die Application nicht in der Liste der erlaubten Software eingetragen ist.


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