当运行我在 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];
错误发生在倒数第二行 socket.SetSocketOption(...)
您会注意到我正在执行 UDP 多播,我需要为 Windows 7 做些什么来允许这样做吗?