मैं एक सी # प्रोग्राम बनाने के लिए मोनो का उपयोग कर रहा हूं जिसे यूडीपी का उपयोग करके भेजने और प्राप्त करने की आवश्यकता है। वर्तमान में मेरा कार्यान्वयन विंडोज़ पर अपेक्षित काम करता है लेकिन मुझे अपने उबंटू या फेडोरा सिस्टम के साथ काम करने के लिए संचार प्राप्त करने में समस्याएं हैं।सी # में यूडीपी विंडोज पर काम करता है लेकिन लिनक्स
विंडोज़ अपने स्वयं के डेटाग्राम प्रसारित और प्राप्त कर सकते हैं।
उबंटू अपने स्वयं के डेटाग्राम प्रसारित और प्राप्त कर सकता है। इसका प्रसारण विंडोज द्वारा प्राप्त किया जाता है लेकिन यह विंडोज द्वारा प्रसारित डेटाग्राम नहीं देखता है।
फेडोरा प्रसारण कर सकता है लेकिन कहीं से भी डेटाग्राम प्राप्त नहीं करता है (यहां तक कि खुद भी नहीं)। इसका प्रसारण विंडोज द्वारा प्राप्त किया जाता है।
जब डेटाग्राम लिनक्स मशीनों में से किसी तक पहुंचने में विफल रहता है, तो 'प्राप्त' फ़ंक्शन कभी नहीं निकाल दिया जाता है।
यह वही है मैं अब तक है:
int _port = 4568;
var server = new UdpClient(_port);
var send_UDP = new UdpClient();
प्राप्त विधि UDPClient की अतुल्यकालिक कॉल उपयोग करता है;
और प्रेषण विधि;
public static void send(string message)
{
var target = new IPEndPoint(IPAddress.Parse("255.255.255.255"), _port);
byte[] data = Encoding.ASCII.GetBytes(message);
send_UDP.Send(data, data.Length, target);
}
फेडोरा के साथ कुछ परीक्षण के बाद, यह प्रसारण के लिए 255.255.255.255 के उपयोग के साथ एक मुद्दा प्रतीत होता है। क्या ऐसा करने का कोई और तरीका है?
आप किसी भी त्रुटि मिल सकता है:
यहाँ अनुकूलक प्रति निर्देशित IPV4 प्रसारण पते की गणना का एक उदाहरण है? क्या आपने कोई रनटाइम त्रुटियों को देखने के लिए 'try-catch' को हटाने का प्रयास किया है? क्या आपने यह देखने के लिए 'प्राप्त' में ब्रेकपॉइंट सेट किया है कि यह बिल्कुल कहलाता है या नहीं? –
'try-catch' केवल एकाधिक उपयोगकर्ताओं से प्राप्त करने के लिए है - मेरे डीबग कोड में अपवाद को कंसोल पर मुद्रित किया जाता है। मैं अन्य सिस्टम पर प्राप्त विधि को डीबग करने का प्रयास करूंगा (यह ऐसा कुछ नहीं था जिसे मैंने कोशिश करने के लिए सोचा था)। –
प्राप्त कोड को फेडोरा पर कभी नहीं निकाल दिया जाता है। ऐसा लगता है कि डेटाग्राम कहां से उत्पन्न हुआ था (मैंने स्थानीय मशीन से और विंडोज़ बॉक्स से भेजने की कोशिश की)। –