2013-03-22 68 views
0

我有一個可以在Windows 7上正常工作的小軟件。它在udp上使用多播進行一些發現。在Windows XP上的組播套接字?

我開始在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

也許這只是我..但我似乎無法找到XP作爲'MulticastOption'的支持平臺..也許它不是? – 2013-03-22 12:48:48

+0

[C#SocketException與多播在XP上]的可能重複(http://stackoverflow.com/questions/436659/c-sharp-socketexception-with-multicast-on-xp) – Ruud 2013-08-14 06:22:02

回答