我有一个在Windows 7上运行良好的小软件。它在udp上使用多播进行了一些发现。
我开始在Windows XP上进行一些测试,但是我遇到了一些错误。
Socket sendSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
//ERROR HAPPEN ON THIS NEXT LINE
sendSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(m_multicastAddress, localAddress));
sendSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 255);
sendSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
sendSocket.MulticastLoopback = true;
sendSocket.Bind(new IPEndPoint(localAddress, m_port));
m_sendSockets.Add(localAddress, sendSocket);
例外是:
System.Net.Sockets.SocketException was unhandled
Message=An invalid argument was supplied
Source=System
ErrorCode=10022
NativeErrorCode=10022
StackTrace:
at System.Net.Sockets.Socket.setMulticastOption(SocketOptionName optionName, MulticastOption MR)
at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Object optionValue)
at [****]
我在100行控制台程序中仅测试了这部分代码。它在Windows 7上工作正常,但总是在XP上崩溃。
您对如何调试/解决此问题有任何想法吗?
答案 0 :(得分:0)