2012-04-18 20 views
13

मैं किसी भी सर्वर कार्यान्वयन के बिना सॉकेट के माध्यम से एकाधिक डिवाइस कनेक्ट करना चाहता हूं। मैं केवल उन डिवाइसों के आईपी पते प्राप्त करने के लिए उपयोग करूंगा जो पंजीकरण करेंगे।क्या आईपी एड्रेस प्राप्त करके सॉकेट का उपयोग करके दो आईओएस डिवाइस कनेक्ट करना संभव है?

+1

शायद बोनजोर सेवा आप जो खोज रहे हैं? – user523234

+0

नहीं, कनेक्ट होने वाले डिवाइस एक ही नेटवर्क पर नहीं होंगे। वे अपने तीन जी नेटवर्क या नेटवर्क प्रदाता – AnishGupta

+3

के जीपीएस कनेक्शन से जुड़े होंगे आपको कुछ खोज तंत्र की आवश्यकता होगी। यदि डिवाइस एक ही नेटवर्क पर नहीं हैं, तो आपको किसी प्रकार के सर्वर की आवश्यकता होगी। यदि डिवाइस 3 जी पर हैं तो आप यह भी सुनिश्चित नहीं कर सकते कि उनका आईपी अद्वितीय होगा। – starbugs

उत्तर

4

आप GameKit उपयोग कर सकते हैं। इसमें matchmaking एपीआई है जो आपकी मदद कर सकती है।

इसका उपयोग गैर गेम ऐप्स के लिए किया जा सकता है। खोज, और गम्यता:

+0

इंटरनेट पर मिलकर मिलकर एपीआई काम कर रहा है? क्योंकि मैं कुछ ऐसे तंत्र चाहता हूं जो इंटरनेट पर एकाधिक उपकरणों को जोड़ सकें। मेरे ज्ञान के अनुसार गेमकिट ब्लूटूथ या स्थानीय क्षेत्र नेटवर्क द्वारा डिवाइस को कनेक्ट करने में सक्षम है। – freelancer

+0

यह इंटरनेट पर भी काम करता है! – MacTeo

+3

आप दो चीजों को भ्रमित कर रहे हैं। गेमकिट का पीयर-टू-पीयर हिस्सा जीकेएसशन, केवल ब्लूटूथ या स्थानीय नेटवर्क पर काम करता है। जीकेमैचमेकर इंटरनेट पर काम करता है, लेकिन यह पीयर-टू-पीयर नहीं है: सब कुछ ऐप्पल के सर्वर या अपने आप से गुजरता है। एक कस्टम सर्वर और कुछ काम के साथ, इसे वास्तविक पी 2 पी जाल के लिए एक परिचयकर्ता के हिस्से के रूप में उपयोग किया जा सकता है, लेकिन स्वयं ही यह समस्या को हल करने के करीब कहीं भी नहीं आता है। – abarnert

9

दो प्रमुख समस्याओं सहकर्मी से सहकर्मी के लिए संचार कर रहे हैं।

सबसे पहले, आप उन्हें कनेक्ट करने के लिए अन्य साथियों के आईपी पते को पता है की जरूरत है। एक बार जब आप सहकर्मियों के जाल से जुड़े होते हैं, तो वे सभी एक-दूसरे को नेटवर्क की स्थिति पर अपडेट कर सकते हैं, एक दूसरे के साथ बेहतर साथियों को सुझाव दे सकते हैं, जो नए साथियों के अधिसूचनाओं के आसपास गुज़र रहे हैं, जो शामिल हो गए हैं और बाएं हैं, लेकिन आपके पास है उस जानकारी के व्यापार के लिए एक तंत्र को डिजाइन और कार्यान्वित करने के लिए। सबसे महत्वपूर्ण बात यह है कि आपको किसी चीज को चीजों को जंपस्टार्ट करने की ज़रूरत है, क्योंकि जब कोई नया सहकर्मी शुरू होता है, तो यह सिर्फ खुद के जाल में होता है, और इसमें खुद को देने की कोई जानकारी नहीं है।

एक संभावना यह अच्छी तरह से ज्ञात "superpeers" (आपके द्वारा चलाए जाने) कि हमेशा जुड़े हुए हैं के एक मुट्ठी भर है, और अनुप्रयोग में उनके पते बेक करने है। या आप सहकर्मियों के बजाय "परिचय सर्वर" कर सकते हैं, एक ही समारोह की सेवा कर सकते हैं। या आपके पास ट्रेडिंग पते का कुछ बाहरी तरीका हो सकता है (सबसे सरल यह है कि उपयोगकर्ता उन्हें वेब फोरम या आईआरसी चैनल पर या व्यक्तिगत रूप से व्यापार करते हैं और उन्हें मैन्युअल रूप से टाइप करते हैं), जिन्हें विभिन्न डिग्री के लिए स्वचालित किया जा सकता है। ऐसे शॉर्टकट भी हैं जो मदद कर सकते हैं-बोनजोर अन्य सहकर्मी जाल पर तब तक प्राप्त कर सकते हैं जब तक कि लैन पर एक सहकर्मी पहले से ही वहां न हो; GameCenter/GameKit को स्वचालित बाहरी व्यापार नेटवर्क के रूप में उपयोग किया जा सकता है; आदि

एक बार जब आप खोज समस्या हल कर लेते हैं, तो आपके पास अभी भी पहुंच क्षमता है। अधिकांश आईओएस उपकरणों में आम तौर पर सार्वजनिक रूप से सुलभ आईपी पते नहीं होते हैं; इसके बजाए, वे राउटर के पीछे हैं जो नेटवर्क एड्रेस ट्रांसलेशन करते हैं, भले ही वे एक घर वाईफाई राउटर या सेल कैरियर के 3 जी नेटवर्क हों। इसका मतलब है कि आपको एक दूसरे से बात करने के लिए दो आईफ़ोन प्राप्त करने के लिए एनएटी होल पंचिंग करने के कुछ तरीके की आवश्यकता है। कोई भी जो सार्वजनिक पते और प्रत्येक डिवाइस के आंतरिक पते दोनों को जानता है, वे एक दूसरे के साथ कनेक्शन स्थापित करने की व्यवस्था कर सकते हैं। आप या तो सामान्य सहकर्मी ऐसा कर सकते हैं (हालांकि यह जंपस्टार्ट समस्या को और भी बड़ा बनाता है) या आपके सुपरपीयर/परिचय सर्वर/आदि हैं। कर दो।

आप अपने आप को इस सब का निर्माण करना चाहते हैं, तो आप शायद अन्य कार्यान्वयन को देखने के लिए चाहते हैं। बिटकटेंट (ट्रैकर्स और डीएचटी समेत) उत्सुक अंत उपयोगकर्ताओं के लिए विस्तृत प्रोटोकॉल चश्मा और खुले स्रोत कार्यान्वयन के लिए "झूठ-से-बच्चों" के स्तरों की निरंतरता के स्तर पर निरंतर समझा और दस्तावेज किया गया है। और फिर कुछ अन्य पी 2 पी नेटवर्क देखें, क्योंकि बिटटोरेंट सही नहीं है, और हर कोई ऐसा करने की कोशिश नहीं करता है जो हर किसी के साथ आता है।

+1

आईओएस पर छेद पंचिंग के बारे में अधिक जानकारी के लिए http://stackoverflow.com/questions/6421742/tcp-hole-punching-on-iphone देखें। आईफोन के लिए एक बिटटोरेंट क्लाइंट, उन्नत cTorrent के स्रोत के लिए http://www.rahul.net/dholmes/ctorrent/ देखें। – abarnert

+1

यदि आप लंबी अवधि के लगातार कनेक्शन चाहते हैं तो एक अतिरिक्त समस्या है: iPhones हर समय पते बदलते हैं। तो आपको एक तरफ या दूसरी तरफ से पता लगाने की ज़रूरत है, और संभावित रूप से कनेक्शन को फिर से स्थापित करने के लिए छेद को फिर से पंच करना होगा। कुछ पी 2 पी प्रोटोकॉल हैं जो इसे ध्यान में रखते हैं (मेरा मानना ​​है कि एडोब का आरटीएमएफपी करता है, लेकिन मुझे नहीं पता कि पुराने श्वेतपत्र जो बताते हैं कि यह कैसे काम करता है अभी भी उपलब्ध है), लेकिन अधिकांश नहीं, क्योंकि वे डेस्कटॉप सिस्टम के लिए डिज़ाइन किए गए थे । – abarnert

0

आप नहीं कर सकते। यदि डिवाइस वाईफाई के साथ ऑनलाइन है, तो यह संभव है और पीसी कनेक्ट की तरह राउटर सेटिंग पर भरोसा कर सकता है। अगर कुछ डिवाइस 3 जी या जीपीआर प्रोटोकॉल से जुड़ा हुआ है, तो उनके पास कोई आईपी पता नहीं हो सकता है।

+0

सच नहीं है। आईपीओ उपकरणों द्वारा उपयोग की जाने वाली जीपीआरएस और अन्य सभी मोबाइल प्रौद्योगिकियां आईपी पते की गारंटी देती हैं। (जीपीआरएस केवल X.25 को अनुमति देने के लिए प्रयोग किया जाता है, लेकिन केवल अप्रचलित प्रथम संस्करण में।) आईपी पता सार्वजनिक रूप से रूकावट नहीं हो सकता है, लेकिन अधिकांश वाईफाई नेटवर्क के लिए भी यही बात सच है, और उसी एनएटी पंचिंग तकनीकें काम करती हैं। – abarnert

-1

iOS के लिए एक अस्पष्ट ग्राहक का निर्माण: XMPP सेटअप

यहाँ है link

+0

अगर मैं गलत हूं, तो मुझे सही करें, लेकिन वह क्लाइंट वास्तव में स्टून/होल-पंचिंग के माध्यम से पीयर-टू-पीयर कनेक्शन नहीं करता है, यह सर्वर के माध्यम से सबकुछ रिले करने के लिए टर्न का उपयोग करता है। और वास्तव में यह उस टर्न सर्वर पर स्थानीय नेटवर्क पर बोनजोर-सक्षम होने पर निर्भर करता है। तो यह सवाल का जवाब नहीं है। – abarnert

+0

उपरोक्त टिप्पणी सच है? मैं स्टंप करने के लिए एक्सएमपीपी का उपयोग करने की सोच रहा था। – roocell

+0

@roocell मैं jabber क्लाइंट सर्वर स्थापित करने की कोशिश कर रहा हूं और वहां से उपयोगकर्ताओं को संभालता हूं। लेकिन जेबबर सर्वर बनाने में समस्या, मैंने ejabber 2.10 डाउनलोड किया लेकिन व्यवस्थापक पैनल में लॉगिन करने में सक्षम नहीं – freelancer

3

मैं ऐसी ही कुछ पर काम कर रहा है और यह पिछवाड़े में एक विशाल दर्द है। 3 विचार हैं: 1) पहुंच योग्यता 2) डिस्कवरी 3) कनेक्शन स्वयं।

1) भी, 3G/4G उपयोग करने पर विचार यह सिर्फ एक खुले सॉकेट कनेक्शन रखने के लिए अच्छी तरह से काम नहीं करेगा न करें।

2) मैं दोनों को जोड़ने के लिए इंटरनेट पर दोनों के बीच ब्रोकर सेवा का उपयोग करता हूं। खोज के लिए, आप बस सूची में कौन से डिवाइस उपलब्ध हैं सूचीबद्ध कर सकते हैं।

3) कनेक्शन के लिए, मुझे आईओएस सॉकेट पुस्तकालयों का उपयोग करने के लिए दर्दनाक लगता है, लेकिन यदि आप बीएसडी सॉकेट स्तर पर जाते हैं तो यह बुरा नहीं है। मुझे लगता है कि यह zmq सॉकेट का उपयोग करना बहुत दिलचस्प होगा; जो दलाल सेवा लिखने को सरल बना सकता है।

+1

# 1 एक अच्छा बिंदु है। पते बदलने पर सहकर्मियों के लिए पता परिवर्तन (और फिर से छेद छेद) प्रसारित करने के लिए आपके पास कुछ एप्लिकेशन-स्तरीय तर्क होना चाहिए। यह करने योग्य है, लेकिन इसका मतलब यह है कि यदि आप विश्वसनीय, आदेशित, दीर्घकालिक कनेक्शन चाहते हैं, तो आपको टीसीपी के जादू पर निर्भर होने के बजाय, एप्लिकेशन स्तर पर स्वयं को बनाना होगा। – abarnert

+0

ओह, और इसका मतलब यह भी है कि आपको किसी प्रकार की अनूठी सहकर्मी आईडी की आवश्यकता है जो कम से कम एक सत्र के भीतर एक पते के रूप में उपयोग करने के लिए लगातार हो, ताकि आप उस लड़के के नए पते के लिए जाल से पूछ सकें जिस पर आप बात कर रहे थे। – abarnert

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

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