यहाँ कुछ कोड मैं वर्तमान में काम करता है कि एक उत्पादन अनुप्रयोग में उपयोग कर रहा हूँ के jist है (हम इस मामले में जहां क्लाइंट सर्वर क्षुधा एक स्टैंडअलोन स्थापना पर चल रहे हैं कर रहे हैं संभाल करने के लिए वहाँ में थोड़ा अतिरिक्त मिल गया है)। यह नौकरी अधिसूचनाएं प्राप्त करना है कि संदेश प्रसंस्करण के लिए तैयार हैं। जैसा कि एडम अलेक्जेंडर द्वारा वर्णित है, आपकी एकमात्र समस्या यह है कि आपको IPAddress का उपयोग करने की आवश्यकता है। किसी भी, IPAddress के बजाय। प्रसारण। आप केवल IPAddress का उपयोग करेंगे। ब्रॉडकास्ट जब आप एक प्रसारण यूडीपी पैकेट भेजेंगे।
udp ग्राहक
this.broadcastAddress = new IPEndPoint(IPAddress.Any, 1234);
this.udpClient = new UdpClient();
this.udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
this.udpClient.ExclusiveAddressUse = false; // only if you want to send/receive on same machine.
और एक async के शुरू होने से एक कॉलबैक का उपयोग कर प्राप्त गति प्रदान करने के लिए सेट करें।
this.udpClient.Client.Bind(this.broadcastAddress);
this.udpClient.BeginReceive(new AsyncCallback(this.ReceiveCallback), null);
उम्मीद है कि इससे मदद मिलती है, आपको इसे बिना किसी समस्या के सिंक्रनाइज़ करने के लिए अनुकूलित करने में सक्षम होना चाहिए। आप जो कर रहे हैं उसके समान ही। यदि आपको अभी भी इसके बाद त्रुटि मिल रही है तो कुछ और बंदरगाह का उपयोग करना चाहिए जिसे आप सुनना चाहते हैं।
तो, स्पष्ट करने के लिए।
IPAddress.Any = प्राप्त करने के लिए प्रयोग किया जाता है। मैं किसी भी आईपी पते पर आने वाले पैकेट को सुनना चाहता हूं। IPAddress.Broadcast = भेजने के लिए प्रयुक्त। मैं सुन रहा हूं कि किसी को भी एक पैकेट भेजना चाहता हूँ।
स्रोत
2009-04-17 08:53:18
हैलो, मेरे मामले में मुझे एक ही मशीन पर प्रसारण करते समय एक त्रुटि मिलती है। क्या आपको यह त्रुटि है, हो कैनी इस मुद्दे को हल करें – Smith