0

2 つのマルチキャスト チャネルを使用するアプリがあるため、

_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")));

(異なるポートに注意してください)。

実行ポイントが 2 番目のバインドに到達すると、例外 (HResult 0x80004005) が発生し、1 つのプロトコル/アドレス/ポートしか使用できないことが警告されます...

私はC++アプリでそれを行ったので、エラーがあるに違いないと思います。

それの何が問題なのですか?

前もって感謝します

4

1 に答える 1

2

わかりました、私はそれを手に入れました:

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

最初のバインドの前に

于 2010-01-20T11:45:43.157 に答える