में आप क्या कर रहे पर निर्भर करता है, वहाँ एक Win32 विधि है कि मदद कर सकता है है। यह किसी दिए गए आईपी पते के लिए सबसे अच्छा इंटरफ़ेस वापस कर देगा। डिफ़ॉल्ट (0.0.0.0) है, जो आम तौर पर आप बहुस्त्र्पीय के लिए क्या चाहते है पाने के लिए, यह बहुत आसान है:
पी/आह्वान हस्ताक्षर:
[DllImport("iphlpapi.dll", CharSet = CharSet.Auto)]
private static extern int GetBestInterface(UInt32 DestAddr, out UInt32 BestIfIndex);
फिर कहीं और:
// There could be multiple adapters, get the default one
uint index = 0;
GetBestInterface(0, out index);
var ifaceIndex = (int)index;
var client = new UdpClient();
client.Client.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastInterface, (int)IPAddress.HostToNetworkOrder(ifaceIndex));
var localEndpoint = new IPEndPoint(IPAddress.Any, <port>);
client.Client.Bind(localEndpoint);
var multicastAddress = IPAddress.Parse("<group IP>");
var multOpt = new MulticastOption(multicastAddress, ifaceIndex);
client.Client.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, multOpt);
var broadcastEndpoint = new IPEndPoint(IPAddress.Parse("<group IP>"), <port>);
byte[] buffer = ...
await client.SendAsync(buffer, buffer.Length, broadcastEp).ConfigureAwait(false);
स्रोत
2013-09-12 16:20:10
क्या आपको कोई समाधान मिला? मेरी भी यही समस्या है। क्या एमएसडीएन पर आलेख आपकी समस्या का समाधान करता है? – Gobliins
मेरे लिए यह – Gobliins
@Gobliins भी मेरे लिए काम नहीं किया था:/कोई समाधान? – J4N