我有一个应用程序使用两个多播频道,所以
_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")));
...
稍后,在同一个应用程序中
_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")));
(注意不同的端口)。
当执行点到达第二个绑定时,引发异常(hresult 0x80004005),警告我只能使用一个协议/地址/端口…
我已经在C++应用程序中这样做了,所以我认为必须是一个错误。
那是怎么回事?
提前谢谢你