मैं क्लाइंट के लिए कुछ सामग्री परोसने के लिए एंड्रॉइड में एक सरल HTTP सर्वर बनाना चाहूंगा।
सर्वर बनाने या किसी मौजूदा लाइब्रेरी का उपयोग करने के बारे में कोई सलाह?
मैं क्लाइंट के लिए कुछ सामग्री परोसने के लिए एंड्रॉइड में एक सरल HTTP सर्वर बनाना चाहूंगा।
सर्वर बनाने या किसी मौजूदा लाइब्रेरी का उपयोग करने के बारे में कोई सलाह?
जवाबों:
: इस एक पर विचार करें https://github.com/NanoHttpd/nanohttpd । बहुत छोटा, जावा में लिखा है। मैंने बिना किसी समस्या के इसका उपयोग किया।
NanoHttpd एंड्रॉइड पर एक आकर्षण की तरह काम करता है - हमारे पास उत्पादन का कोड है, उपयोगकर्ताओं के हाथों में, जो उस पर बनाया गया है।
लाइसेंस बिल्कुल भी नैनो वायरलैड के व्यावसायिक उपयोग की अनुमति देता है, बिना किसी "वायरल" निहितार्थ के।
यह ServerSocket का उपयोग करके किया जा सकता है , जैसे कि JavaSE पर। यह क्लास एंड्रॉइड पर उपलब्ध है।android.permission.INTERNET
आवश्यक है।
केवल अधिक मुश्किल हिस्सा है, आपको सर्वर सॉकेट पर एक अलग थ्रेड प्रतीक्षा की आवश्यकता है, जो उप-सॉकेट्स की सर्विसिंग करता है जो इसके से आते हैं accept
विधि । आपको इस धागे को आवश्यकतानुसार रोकने और फिर से शुरू करने की भी आवश्यकता है। सबसे आसान तरीका सर्वरसॉकेट को बंद करके वेटिंग थ्रेड को मारना प्रतीत होता है। यदि आपको केवल एक सर्वर की आवश्यकता है, जबकि आपकी गतिविधि शीर्ष पर है, तो शुरू करने और ServerSocket थ्रेड को रोकने के बजाय सक्रिय रूप से गतिविधि जीवन चक्र विधियों से बंधा हो सकता है। इसके अलावा, यदि सर्वर में कई उपयोगकर्ता हैं, तो कांटे हुए थ्रेड्स में सेवा अनुरोध करना अच्छा हो सकता है। यदि केवल एक उपयोगकर्ता है, तो यह आवश्यक नहीं हो सकता है।
यदि आपको उस उपयोगकर्ता को बताने की आवश्यकता है जिस पर आईपी सर्वर सुन रहा है, तो NetworkInterface .getNetworkInterfaces () का उपयोग करें , यह प्रश्न अतिरिक्त चाल बता सकता है।
अंत में, यहां संभवतः पूर्ण न्यूनतम एंड्रॉइड सर्वर है जो बहुत ही छोटा है, सरल है और अन्य उत्तरों में अनुशंसित अंतिम उपयोगकर्ता अनुप्रयोगों की तुलना में समझने में आसान हो सकता है।
एक अन्य सर्वर जिसे आप http://tjws.sf.net आज़मा सकते हैं , वास्तव में यह पहले से ही एंड्रॉइड सक्षम संस्करण प्रदान करता है।
आप Android के लिए रेस्टलेट संस्करण आज़मा सकते हैं :
स्रोत को रेस्टलेट वेबसाइट से डाउनलोड किया जा सकता है :
यदि आप कोटलिन का उपयोग कर रहे हैं, तो इन पुस्तकालय पर विचार करें। यह कोटलिन भाषा के लिए निर्मित है। https://github.com/weeChanc/AndroidHttpServer https://github.com/ktorio/ktor
AndroidHttpServer बहुत छोटा है, लेकिन सुविधा कम भी है।
Ktor एक बहुत अच्छी लाइब्रेरी है, और उपयोग भी सरल है