0

XP で作成した C# アプリを実行すると問題なく動作しますが、Windows 7 では次のエラーが発生します。

「システムに十分なバッファ領域がなかったか、キューがいっぱいだったため、ソケットに対する操作を実行できませんでした」

私は次のことをしています:

socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
IPAddress localIPAddr = IPAddress.Any;
EndPoint localEP = new IPEndPoint(localIPAddr, MulticastPort);
socket.Bind(localEP);
MulticastOption mcastOption = new MulticastOption(MulticastAddress, localIPAddr);

socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, mcastOption);

byte[] bytes = new Byte[40960];

エラーは、最後の 2 行目の socket.SetSocketOption(...) で発生します。

UDP マルチキャストを行っていることがわかりますが、Windows 7 でこれを許可するために必要なことはありますか?

4

1 に答える 1

0

IIRC では、カーネル レベルのテーブルを変更しているため、マルチキャスト グループに参加するには追加の権限が必要です。どの特典か思い出せないけど。

于 2009-12-10T16:31:42.207 に答える