![]() |
[idUDPClient] Broadcast auf allen Interfaces raus senden
Hi Leute
Ich habe das Problem das meine idUDPClient Komponente nur den Broadcast nur auf einem Interface rausschickt. Dieser Broadcast ist zum finden von anderen Clienten im Netz. Wenn ich jetzt aber z.b. Hamachi installiert habe sendet er den Broadcast mit der 5.x.x.x Adresse weg. Wenn das Hamachi dabei aber nicht läuft dann geht das Packet verloren. Wie kann ich jetzt dem idUDPClient beibringen das er auf alle interfaces die er findet einen Broadcast raus sendet? Mein Code zum senden:
Delphi-Quellcode:
Mein idUDPServer wird so gestartet:
IdUDPClient.BroadcastEnabled := true;
IdUDPClient.Broadcast('Hallo', vUDPPort);
Delphi-Quellcode:
IdUDPServer.DefaultPort := vUDPPort;
IdUDPServer.OnUDPRead := UDPServerUDPRead; IdUDPServer.OnUDPException := UDPServerOnException; IdUDPServer.Bindings.Add.IP := '0.0.0.0'; IdUDPServer.Active := true; |
Re: [idUDPClient] Broadcast auf allen Interfaces raus senden
*push*
:duck: |
Re: [idUDPClient] Broadcast auf allen Interfaces raus senden
:duck:
|
Re: [idUDPClient] Broadcast auf allen Interfaces raus senden
:duck:
|
Re: [idUDPClient] Broadcast auf allen Interfaces raus senden
Moin moin,
kenne Hamachi nicht... scheint aber auch nix mit deinem Problem zu tun zu haben. Normalerweise sendest du einen Broadcast auf z.B. 192.168.1.255 oder 192.168.255.255 u.s.w. halt je nachdem welches Netz du erreichen willst. Das sollte bei Indy ungefähr so aussehen
Delphi-Quellcode:
Damit sollte der broadcast über alle interfaces rausgehen (Vorraussetzung ist natürlich ein konfiguriertes Netzwerk)
//...
IdUDPClient.Host := '255.255.255.255'; IdUDPClient.BroadcastEnabled:= True; IdUDPClient.Broadcast ('HALLO', vUDPPort); //... Hierbei entscheidet aber letztendlich das Routing welche Schnittstellen benutzt werden. Eingabeaufforderung:
Code:
zeigt dir die Schittstellen an die benutzt werden.
c:\> route print
|
Re: [idUDPClient] Broadcast auf allen Interfaces raus senden
Zitat:
Zitat:
Mein Routingtable:
Code:
So das Standartgateway ist also mein router ... also mein LAN
Netzwerkziel Netzwerkmaske Gateway Schnittstelle Anzahl
0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.100 10 5.0.0.0 255.0.0.0 5.209.227.44 5.209.227.44 20 5.209.227.44 255.255.255.255 127.0.0.1 127.0.0.1 20 5.255.255.255 255.255.255.255 5.209.227.44 5.209.227.44 20 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 192.168.0.0 255.255.255.0 192.168.0.100 192.168.0.100 10 192.168.0.100 255.255.255.255 127.0.0.1 127.0.0.1 10 192.168.0.255 255.255.255.255 192.168.0.100 192.168.0.100 10 224.0.0.0 240.0.0.0 5.209.227.44 5.209.227.44 20 224.0.0.0 240.0.0.0 192.168.0.100 192.168.0.100 10 255.255.255.255 255.255.255.255 5.209.227.44 5.209.227.44 1 255.255.255.255 255.255.255.255 192.168.0.100 192.168.0.100 1 Standardgateway: 192.168.0.1 Der Broadcast geht aber über die Hamachi schnittstelle weil hamachi in der adapter reihenfolge ganz oben ist |
Re: [idUDPClient] Broadcast auf allen Interfaces raus senden
Moin moin,
für das Routing sind eigentlich die Ziele insteressant. Wenn du in deinem Client den Host 255.255.255.255 her nimmst, dann wird in die Routingtabelle geschaut, über welche Schnittstelle gesendet wird. In diesem und deinem Fall wären es:
Code:
Da für die 255.255.255.255 eine (2) Route(n) vorhanden ist, ist das Standardgateway eigentlich uninteressant, sondern nur
Netzwerkziel Netzwerkmaske Gateway Schnittstelle Metrik
--------------------------------------------------------------------------- ... 255.255.255.255 255.255.255.255 5.209.227.44 5.209.227.44 1 255.255.255.255 255.255.255.255 192.168.0.100 192.168.0.100 1 diese beiden Zeilen. Wie hier jetzt aber entschieden wird, welches Interface genommen wird... da bin ich im Moment auch überfragt, da ja auch die Metrik gleich ist... hm, evtl. kommt ja nochmal einer der Ahnung hat. Sorry... |
Re: [idUDPClient] Broadcast auf allen Interfaces raus senden
Zitat:
Eine Frage was ich mir stell: Ist das Absicht das er nur eine nimmt oder ein Fehler in den Indys (oder von Windows)? |
Re: [idUDPClient] Broadcast auf allen Interfaces raus senden
Moin moin nochmal,
Zitat:
![]() Wenn du mit Client.Broadcast() einen Broadcast sendest, geht der immer als Ethernet-Broadcast an die MAC-Adresse FF:FF:FF:FF:FF:FF. Zitat:
Zitat:
|
Re: [idUDPClient] Broadcast auf allen Interfaces raus senden
Zitat:
Zitat:
Somit geht dann auch mein broadcast verloren weil dieser nur über den hamachi adapter gesendet wird. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:17 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