URL: https://linuxfr.org/forums/programmation-c--2/posts/bind-sur-2-interfaces-ethernet Title: bind sur 2 interfaces ethernet Authors: donaldo78 Date: 2004年09月16日T17:01:13+02:00 Tags: fedora Score: 0 sur la meme machine Linux Fedora en noyau 2.6.3, j'ai 2 sockets UDP qui ecoutent sur 2 cartes reseau differentes, mais sur le meme port 520. pour des raisons que je ne vais pas expliquer en detail, il faut obligatoirement que je puisse differencier les flux des 2 sockets, car j'ai 2 threads dans mon process, chaque thread ayant un boulot particulier a faire sur une interface dediee. ce que je fais: - je cree 2 sockets UDP - je bind chaque socket sur l'adresse IP de l'interface ethernet associee. - je fais des select, et des recvfrom. - je recois un premier paquet sur une des 2 interfaces. - ensuite, plus rien, meme en forcant le recvfrom sans select. pourtant, je vois les paquets UDP qui passent au sniffer. j'ai egalement fait un setsockopt SO_REUSEADDR sur chaque socket. tiens, parcontre, si je bind chaque socket sur INADDR_ANY, et qu'ensuite je fais un setsockopt (socket (7)) sur SO_BINDTODEVICE, la ca marche... quelqu'un a-t-il une explication sur le fait que ca ne marche pas ? ah, j'oubliais, je me suis egalement mis dans un meme groupe multicast (224.0.0.9) pour chacune de ces sockets merci d'avance.

AltStyle によって変換されたページ (->オリジナル) /