Socket ignoriert Broadcasts in 255.255.0.0 Netz

Gast #3015779
Lesenswert?

Hallo,

ich habe ein Netzwerk Gerät gebaut. Um das zu finden sendet der PC einen 
UDP Broadcast, und das Gerät antwortet mit einem Paket an die 
Absenderadresse.
Funktioniert bestens, solange ich mit einem DHCP Server arbeite. Die 
Netzmaske ist in diesem Fall 255.255.255.0

Wenn ich statt DHCP aber AutoIP verwende, haben PC und Gerät eine 
Adresse im Bereich 169.254.xxx.yyy (also Netzmaske 255.255.0.0). Der 
Broadcast vom PC zum Gerät kommt an, das Gerät antwortet und ich sehe am 
PC mit dem Sniffer auch das korrekte Antwortpaket. Leider wird das Gerät 
aber von meiner Windows Software ignoriert, der Socket empfängt einfach 
nichts. Ich öffne den Socket für den Empfang der Antwortpakete 
folgendermassen:

SOCKET s;
SOCKADDR_IN addr;
memset(&addr,0,sizeof(addr));
addr.sin_family=AF_INET;
addr.sin_port=htons(12345);
addr.sin_addr.s_addr=ADDR_ANY;
rc=bind(s,(SOCKADDR*)&addr, sizeof(SOCKADDR_IN));
FD_ZERO(&readfds);
FD_SET(s, &readfds);
sel = select(0, &readfds, NULL, NULL, NULL);

Warum empfange ich das Antwortpaket nicht, obwohl es ja am PC ankommt?

Danke & Gruß Ignaz

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren