2013-04-25 8 views
7

पर डिवाइस खोज को कार्यान्वित करने का सबसे अच्छा तरीका क्या है मुझे नेटवर्क प्रोग्रामिंग पर अधिक अनुभव नहीं है और मैं एक बहु मंच प्रणाली लिख रहा हूं जिसके लिए प्रत्येक डिवाइस एक ही लैन के भीतर अन्य डिवाइस ढूंढने में सक्षम है, मैं सोच रहा हूं कि क्या है एक सही दृष्टिकोण और हो सकता है यहाँ के लोग मुझे कुछ सिफारिश प्रदान कर सकते हैं, यहाँ मेरी डिजाइन की आवश्यकता,लैन

  1. मैं सी ++ उपयोग कर रहा हूँ और समाधान, पार मंच है, जो कम से कम सक्षम iOS पर चलाने के लिए किया जा करने के लिए Windows की जरूरत है , एंड्रॉयड।

  2. सिस्टम बहुत हल्का वजन होना चाहिए, और यदि संभव हो तो कोई विशेष सेटअप या नेटवर्क आवश्यकता के तहत काम नहीं करना चाहिए।

यहाँ विभिन्न दृष्टिकोणों मैं अब तक विचार विमर्श कर रहा हूँ कर रहे हैं,

  1. UPnP प्रोटोकॉल का उपयोग करना, लेकिन मैं इसे साथ बहुत परिचित नहीं हूँ, और नहीं लगता था कि कैसे उपयोग करने के लिए के बारे में ज्यादा उदाहरण है कोड में

  2. पारंपरिक सॉकेट दृष्टिकोण का उपयोग करके, प्रत्येक डिवाइस पर सर्वर/क्लाइंट दोनों बनाएं और LAN पर प्रत्येक आईपी में डेटा पैकेट भेजें। और मैन्युअल रूप से बाद में सबकुछ करें। अगर मैं गलत हूं, तो मुझे सही करें, अगर मैं प्रसारण पते पर एक पैकेट भेजता हूं, तो इसका मतलब है कि सिस्टम स्वचालित रूप से सबनेट के भीतर प्रत्येक आईपी में अपना पैकेट भेज देगा?

  3. बाहरी सर्वर का उपयोग करना, जो सभी क्लाइंट उस बाहरी सर्वर पर पंजीकृत होंगे, और उसके बाद सर्वर से अन्य क्लाइंट की जानकारी प्राप्त करेंगे। हालांकि, मुझे यकीन नहीं है कि वे प्रत्येक ग्राहक को एक ही लैन में निर्धारित करने के लिए कनेक्ट करना चाहिए।

मुझे बताएं कि क्या मैं सोच रहा हूं कि कोई इंद्रियां और कोई सलाह बहुत सराहना की जाती है।

+0

बाद में नियमित कनेक्शन बनाने के लिए सेटअप जानकारी के साथ, प्रसारण पते पर यूडीपी पैकेट भेजना आम बात है। प्रसारण में भेजे गए पैकेट उस सबनेट में प्रत्येक डिवाइस पर भेजे जाएंगे। मैं दृश्यों के पीछे क्या होता है यह देखने के लिए Wireshark फायरिंग की सलाह देते हैं। – Brad

+0

जानकारी के लिए धन्यवाद, लेकिन मैंने सुना है कि प्रसारण को रोकने के लिए राउटर को स्थापित किया जा सकता है, और यह आमतौर पर एक लैन में डिफ़ॉल्ट है। क्या यह सच है? और यदि हां, तो ऐसी विधि काफी भरोसेमंद नहीं है तो – NachoChip

+0

नहीं, राउटर आपके नेटवर्क और दूसरे नेटवर्क के बीच जाता है।ब्रॉडकास्ट पैकेट केवल आपके नेटवर्क पर भेजे जाते हैं, इसलिए राउटर की कॉन्फ़िगरेशन पर कोई असर नहीं पड़ता है। इसके अतिरिक्त, यदि राउटर ऐसा करने में सक्षम था, तो आपका नेटवर्क काम नहीं करेगा। ब्रॉडकास्ट पैकेट बुनियादी कार्यक्षमता, जैसे कि डीएचसीपी, यूपीएनपी, और बोनजोर (जैसे मार्को के उत्तर में) के लिए महत्वपूर्ण हैं। – Brad

उत्तर

3

एक विकल्प जिसे आपने सूचीबद्ध नहीं किया है ZeroConf's DNS-SD प्रोटोकॉल है।

इसका उपयोग ऐप्पल द्वारा भारी रूप से किया जाता है - जो इसे Bonjour (नी रेन्डेज़वस) के रूप में बाजार में रखता है। आईओएस और मैकोज़क्स में कड़े एकीकरण है।
ऐप्पल एक एसडीके Windows कार्यान्वयन भी प्रदान करता है और एमडीएनएस सेवा को खोलता है।

एंड्रॉइड इसे out of the box का समर्थन करता प्रतीत होता है।

Avahi के रूप में लिनक्स के लिए भी मजबूत और परिपक्व समर्थन है, जिसमें अधिकांश डेस्कटॉप डिस्ट्रोज़ शामिल हैं।

ऐसा लगता है कि उपयोगकर्ता को कुछ भी इंस्टॉल करने की आवश्यकता होगी, और फिर भी, यह आईट्यून्स (संगीत लाइब्रेरी साझा करने के लिए उपयोग किया जाता है) और ऐप्पल के वायरलेस एक्सेस पॉइंट्स के लिए सेटअप सॉफ़्टवेयर के साथ स्थापित है।

+0

एफवाईआई - कुछ देखने के लिए: http://superuser.com/questions/730288/why-do-some-wifi-routers-block-multicast-packets-going-from-wired-to-wireless – hooby3dfx

संबंधित मुद्दे