2010-01-20 5 views
0

je une application qui utilise 2 canaux de multidiffusion, de sorte.NET Multicast Socket Error

_sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 
      IPEndPoint iep = new IPEndPoint(IPAddress.Any, 30002); 
_sock.Bind(iep); 
_sock.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse("239.255.0.2"))); 
... 

plus tard, dans la même application

_sock2 = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 
      IPEndPoint iep = new IPEndPoint(IPAddress.Any, 30001); 
_sock2.Bind(iep); 
_sock2.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse("239.255.0.2"))); 

(noter les différents ports).

Lorsque le point d'exécution atteint la deuxième liaison d'une exception (HResult 0x80004005) est soulevée, me avertissement qui peuvent être utilisés ...

je l'ai fait qu'un seul protocole/adresse/port en C++ apps si i pense qu'il doit y avoir une erreur.

Quel est le problème avec cela?

Nous vous remercions à l'avance

Répondre

2

Ok, je l'ai:

_sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1); 

avant la première liaison