Bonjour tout le monde, je débute le dévellopement réseau, excusez moi d'avance de mon éventuel naîveté.
J'utilise (notamment) le protocole UDP pour recevoir des paquets sur une machine, pour cela j'utilise les Socket du namespace System.Net.Sockets. Je doit lier ce paquet à un adaptateur réseau (une adresse IP locale) et un port de la machine.
N'ayans aucune préférence sur l'adaptateur à utiliser, je laisse le framework se débrouiller et je lie donc le socket au point d'entree suivant :
Le probléme est que lors de la réception d'un paquet il me faut savoir sur quel interface je l'ais reçue (sur quel adresse IP, le port m'est connue vus les lignes ci dessus).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 bindEndPoint = new IPEndPoint(IPAddress.Any, xxxx); receiveSocketUdp.Bind(bindEndPoint);
Je pensait utiliser la méthode, cependant quoi que je fasse cette méthode me dit que l'interface utilisé est 0.0.0.0 : xxxx. C'est à dire IPAdresss.Any.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Socket.LocalEndPoint
Aprés consultation de la MSDN j'ai trouvé cette ligne qui m'encourage à penser que j'utilise la bonne méthode :
Donc avez vous la moindre idée de la raison pour laquelle je ne peut obtenir l'interface sur laquelle à était reçue ce paquet avec la propriété LocalendPoint aprés la premiére entrée?The LocalEndPoint property is usually set after you make a call to the Bind method. If you allow the system to assign your socket's local IP address and port number, the LocalEndPoint property will be set after the first I/O operation
Partager