2009-03-20 9 views
2

Je travaille sur un projet qui découvre/configure des périphériques distants en utilisant des diffusions UDP. Ces périphériques n'ont peut-être pas encore d'adresse IP configurée, au moins non pour correspondre au réseau auquel ils sont connectés. Actuellement, nous utilisons un seul sendto avec une adresse cible de 255.255.255.255. Cela fonctionne très bien dans la plupart des cas, mais sur les machines Vista avec plusieurs cartes réseau, la diffusion semble seulement être envoyé une des interfaces. Comment puis-je obtenir Vista pour envoyer la diffusion à toutes les interfaces?Diffusion UDP sur des systèmes multi-hôtes

Répondre

2

Personnellement, je n'ai jamais vu aucun système générer un paquet pour chaque interface en réponse à un seul appel sendto.

Une meilleure option consisterait à énumérer les interfaces réseau, à déterminer la diffusion lien-local correcte et à envoyer un paquet séparé individuellement via chaque interface.

+1

Je ne suis pas sûr que les adresses locales de lien fonctionneront puisque tous les périphériques n'ont pas d'IP configurés pour le sous-réseau de la liaison. – megabytephreak

1

Énumérer les interfaces, puis envoyer le paquet une fois sur chaque interface.

1

Nous avons exactement le même problème, seulement nous ne pouvons pas utiliser les diffusions de sous-réseaux, comme nous voulons les configurer. Si un périphérique a une adresse IP incorrecte (en dehors de notre plage), l'envoi d'une diffusion de sous-réseau ne sera jamais accepté par sa pile IP. Nasty problème, à moins que nous n'autorisons DHCP ...

+0

En fait, nous avons les mêmes problèmes – megabytephreak