2010-04-09 13 views
10

मैं एंड्रॉइड पर चलने वाला एक एप्लिकेशन बनाना चाहता हूं और कच्चे सॉकेट का उपयोग करता हूं। मुझे लगता है कि java.net में कोई कच्चा सॉकेट समर्थन नहीं है। * या android.net। * पुस्तकालय। एंड्रॉइड पर कच्चे सॉकेट संभव हैं?एंड्रॉइड पर कच्चे सॉकेट

उत्तर

9

सही है, कच्चे सॉकेट किसी भी जावा या Android पुस्तकालयों प्रतिशत समर्थन नहीं करता, भाग में, क्योंकि (मैं here से उद्धृत):

यह माना जाता है कि इस तरह के एक पैकेज वर्तमान जावा सुरक्षा मॉडल नीचा होगा और गैर-ऑपरेटिंग सिस्टम (ओएस) निर्भर फैशन में कार्यान्वित करना मुश्किल हो सकता है।

, RockSaw या JSocket की तरह 3 पार्टी पुस्तकालयों रहे हैं लेकिन इन सी या सी ++ संकलन की आवश्यकता होती है, तो आप वहाँ भाग्य से बाहर हैं।

इसके अलावा, मुझे विश्वास है कि आपको कच्चे सॉकेट का उपयोग करने के लिए रूट पहुंच की आवश्यकता है।

तो, मैं यह कहूंगा कि तकनीकी रूप से यह संभव है, लेकिन इस समय व्यावहारिक नहीं है।

+2

आप सी/सी ++ कोड के लिए एंड्रॉइड एनडीके का उपयोग कर सकते हैं। हालांकि पहुंच प्रतिबंध के साथ यह मदद नहीं करता है। – fadden

+3

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

+1

@ टिंगो और स्टीव: "मुझे विश्वास है कि आपको कच्चे सॉकेट का उपयोग करने के लिए रूट पहुंच की आवश्यकता है": अधिक सटीक, आपको [CAP_NET_RAW क्षमता] की आवश्यकता है (http://man7.org/linux/man-pages/man7/packet.7.html), लेकिन हां, जब तक कि बेहतर अनाज वाले विशेषाधिकार प्रबंधन का उपयोग नहीं किया जाता है, जो "रूट" तक उबाल जाता है। – jbm

-7

एंड्रॉयड इंटरप्रोसेस कम्युनिकेशन का प्रयोग क्यों नहीं, जैसे:

AIDL, आशय, प्रसारण आदि

उदाहरण के लिए http://developer.android.com/guide/topics/fundamentals/services.html देखें। वे आंतरिक रूप से कच्चे सॉकेट का उपयोग करते हैं

0

जहां तक ​​मुझे पता है कि एंड्रॉइड पर यह संभव नहीं है। सुरक्षा कारणों (मुझे लगता है) के कारण जावा में नहीं और न ही सी/सी ++, रूट एक्सेस के साथ कुछ हैक के माध्यम से एकमात्र संभावित समाधान होगा। मैं भी एक रास्ता तलाश रहा हूं लेकिन कभी भी कुछ नहीं मिला।

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