मैं अपने स्थानीय नेटवर्क पर कुछ सरल यूडीपी संचार काम करने की कोशिश कर रहा हूं।सी # में स्थानीय नेटवर्क में यूडीपी मल्टीकास्ट कैसे करें?
सभी मैं करना चाहता हूँ मेरी प्राप्त कोड है नेटवर्क
यहाँ मेरी भेज रहा है कोड
public void SendMessage(string message)
{
var data = Encoding.Default.GetBytes(message);
using (var udpClient = new UdpClient(AddressFamily.InterNetwork))
{
var address = IPAddress.Parse("224.100.0.1");
var ipEndPoint = new IPEndPoint(address, 8088);
udpClient.JoinMulticastGroup(address);
udpClient.Send(data, data.Length, ipEndPoint);
udpClient.Close();
}
}
और यहाँ पर सभी मशीनों के लिए एक बहुस्त्र्पीय करना है
public void Start()
{
udpClient = new UdpClient(8088);
udpClient.JoinMulticastGroup(IPAddress.Parse("224.100.0.1"), 50);
receiveThread = new Thread(Receive);
receiveThread.Start();
}
public void Receive()
{
while (true)
{
var ipEndPoint = new IPEndPoint(IPAddress.Any, 0);
var data = udpClient.Receive(ref ipEndPoint);
Message = Encoding.Default.GetString(data);
// Raise the AfterReceive event
if (AfterReceive != null)
{
AfterReceive(this, new EventArgs());
}
}
}
यह काम करता है पूरी तरह से मेरी स्थानीय मशीन पर लेकिन नेटवर्क भर में नहीं।
-फ़ायरवॉल प्रतीत नहीं होता है। मैंने इसे दोनों मशीनों पर अक्षम कर दिया और यह अभी भी काम नहीं कर सका।
- यह काम करता है अगर मैं क्लाइंट मशीन (यानी मल्टीकास्ट नहीं) के हार्ड कोडित आईपी पते पर सीधे भेजता हूं।
किसी भी मदद की सराहना की जाएगी।
मुझे इसे लैन पर भी काम करने में परेशानी हो रही थी। JoinMulticastGroup() को कॉल करते समय सुनने के लिए एक स्पष्ट आईपी पते के दूसरे तर्क के बिना, यह मनमाने ढंग से कुछ वर्चुअल ईथरनेट ड्राइवर चुन रहा था जिसे मैंने डॉकर/हाइपर-वी के हिस्से के रूप में स्थापित किया था और इसे मेरे असली ईथरनेट के बजाय मल्टीकास्ट समूह में शामिल किया था अनुकूलक। यदि आपके पास एक से अधिक नेटवर्क एडेप्टर हैं, तो आप मल्टीकास्ट समूह में शामिल होने के लिए आईपी एड्रेस निर्दिष्ट करना चाहते हैं, स्पष्ट रूप से विधि अधिभार के साथ जो दूसरे तर्क के रूप में आईपी पता लेता है। – MEverett