質問

I've got c++ application running on busybox (kernel 3.0.35 ARM) which listens for multicast packets. Everything seemed working fine until I discovered that if I start the app up with the network cable unplugged and then plug it in later it won't received the multicast packets. I can't figure out why. There is no error, all setting up operations (bind, setsockopt, ...) finish successfully, ip maddr shows correct information as well. Only select() won't report any incoming data. Is there something kernel does differently if link is not up?

Interestingly same app also sends multicast packets on different addresses and this doesn't seem to be affected by the link status, it's happily transmitting once I plug the cable in.

Any ideas?

Thanks, Tom

役に立ちましたか?

解決

Presumably you issue JOIN when you startup. If the cable isn't plugged in, the IGMP JOIN request can't go anywhere, so the router doesn't know to send multicasts to you.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top