AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi [idUDPClient] Broadcast auf allen Interfaces raus senden
Thema durchsuchen
Ansicht
Themen-Optionen

[idUDPClient] Broadcast auf allen Interfaces raus senden

Ein Thema von gsh · begonnen am 19. Okt 2008 · letzter Beitrag vom 16. Mär 2009
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#1

[idUDPClient] Broadcast auf allen Interfaces raus senden

  Alt 19. Okt 2008, 13:57
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:
IdUDPClient.BroadcastEnabled := true;
IdUDPClient.Broadcast('Hallo', vUDPPort);
Mein idUDPServer wird so gestartet:
Delphi-Quellcode:
IdUDPServer.DefaultPort := vUDPPort;
IdUDPServer.OnUDPRead := UDPServerUDPRead;
IdUDPServer.OnUDPException := UDPServerOnException;
IdUDPServer.Bindings.Add.IP := '0.0.0.0';
IdUDPServer.Active := true;
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#2

Re: [idUDPClient] Broadcast auf allen Interfaces raus senden

  Alt 20. Okt 2008, 16:41
*push*
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#3

Re: [idUDPClient] Broadcast auf allen Interfaces raus senden

  Alt 25. Okt 2008, 16:49
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#4

Re: [idUDPClient] Broadcast auf allen Interfaces raus senden

  Alt 30. Okt 2008, 20:28
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#5

Re: [idUDPClient] Broadcast auf allen Interfaces raus senden

  Alt 30. Okt 2008, 21:38
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:
//...
   IdUDPClient.Host := '255.255.255.255';
   IdUDPClient.BroadcastEnabled:= True;
   IdUDPClient.Broadcast ('HALLO', vUDPPort);
//...
Damit sollte der broadcast über alle interfaces rausgehen (Vorraussetzung ist natürlich ein konfiguriertes Netzwerk)
Hierbei entscheidet aber letztendlich das Routing welche Schnittstellen benutzt werden.
Eingabeaufforderung:
Code:
c:\> route print
zeigt dir die Schittstellen an die benutzt werden.
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#6

Re: [idUDPClient] Broadcast auf allen Interfaces raus senden

  Alt 30. Okt 2008, 22:34
Zitat von x000x:
Damit sollte der broadcast über alle interfaces rausgehen (Vorraussetzung ist natürlich ein konfiguriertes Netzwerk)
JA der Boradcast SOLLTE über alle interfaces rausgehen ... tut er aber nicht <--- und genau das ist das Problem

Zitat von x000x:
Hierbei entscheidet aber letztendlich das Routing welche Schnittstellen benutzt werden.
Eingabeaufforderung:
Code:
c:\> route print
zeigt dir die Schittstellen an die benutzt werden.
nicht unbedingt
Mein Routingtable:
Code:
     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
So das Standartgateway ist also mein router ... also mein LAN
Der Broadcast geht aber über die Hamachi schnittstelle weil hamachi in der adapter reihenfolge ganz oben ist
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#7

Re: [idUDPClient] Broadcast auf allen Interfaces raus senden

  Alt 30. Okt 2008, 23:09
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:
     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
Da für die 255.255.255.255 eine (2) Route(n) vorhanden ist, ist das Standardgateway eigentlich uninteressant, sondern nur
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...
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#8

Re: [idUDPClient] Broadcast auf allen Interfaces raus senden

  Alt 30. Okt 2008, 23:15
Zitat von x000x:
Da für die 255.255.255.255 eine (2) Route(n) vorhanden ist, ist das Standardgateway eigentlich uninteressant, sondern nur
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...
ja ok wahrscheinlich nimmt er dann da einfach die erste

Eine Frage was ich mir stell: Ist das Absicht das er nur eine nimmt oder ein Fehler in den Indys (oder von Windows)?
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#9

Re: [idUDPClient] Broadcast auf allen Interfaces raus senden

  Alt 31. Okt 2008, 00:30
Moin moin nochmal,

Zitat von gsh:
Eine Frage was ich mir stell: Ist das Absicht das er nur eine nimmt oder ein Fehler in den Indys (oder von Windows)?
Ok, weder noch... Wenn du dir mal den Artikel durchliest, wirst du feststellen, dass ich auch etwas daneben lag.
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 von Wikipedia:
Limited Broadcast
Als Ziel wird die IP-Adresse 255.255.255.255 angegeben. Dieses Ziel liegt immer im eigenen Netz und wird direkt in einen Ethernet-Broadcast umgesetzt. Ein limited broadcast wird von einem Router nicht weitergeleitet.
Für dich ist dann wohl ein Directed Broadcast interessant.

Zitat von gsh:
...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...
Das versteh ich aber trotzdem noch nicht wirklich. Was passiert da nochmal genau?
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#10

Re: [idUDPClient] Broadcast auf allen Interfaces raus senden

  Alt 31. Okt 2008, 07:47
Zitat von x000x:
Für dich ist dann wohl ein Directed Broadcast interessant.
hmm das wird nicht so leicht. Den dann muss ich mir zuerst alle IPs holen richtig mit der Subnetmask das Netz raus filtern und dann einen directed Broadcast rausschicken ...

Zitat von x000x:
Zitat von gsh:
...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...
Das versteh ich aber trotzdem noch nicht wirklich. Was passiert da nochmal genau?
Sobald du Hamachi installierst setzt er z.b. die 5.x.x.x route fest in das system ein. Wenn du also einen ping zu 5.1.1.1 machst dann geht er durch den routing table zum hamachi adapter. Da aber mein hamachi nicht immer läuft wird das packet dann einfach gedropt weil es nicht durch einen vpn tunnel weitergeleitet werden kann.
Somit geht dann auch mein broadcast verloren weil dieser nur über den hamachi adapter gesendet wird.
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:45 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