मैं एक Android एप्लिकेशन है एक टीसीपी (Node.js में लिखा) एक टीसीपी सर्वर से कनेक्शनएंड्रॉयड TCP कनेक्शन सबसे अच्छा अभ्यास
मेरे Android टीसीपी ग्राहक काम कर रहा है एक संदेशों आगे और पीछे भेज सकते हैं की आवश्यकता है पर काम कर रहा हूँ।
मेरे spesific सवाल है:
- सबसे अच्छा तरीका है एंड्रॉयड में एक सर्वर के लिए एक TCP कनेक्शन को संभालने के लिए क्या है?
- कनेक्शन को कैसे बनाए रखें (ऑनस्ट्राय() आदि पर कनेक्शन को ठीक से बंद करें)?
:@Override protected Void doInBackground(Void... params) { try { Log.d("TCP_MESSAGE", "Connecting..."); socket = new Socket(MY_LOCAL_IP, 8080); dataOutput = new DataOutputStream(socket.getOutputStream()); inputstream = new InputStreamReader(socket.getInputStream()); input = new BufferedReader(inputstream); while (!canceled) { String message = input.readLine(); handleMessage(message); } } catch (Exception e) { e.printStackTrace(); } } return null; }
- कोई bether रास्ता तो एक AsyncTask का उपयोग कर
मैं इस तरह एक AsyncTask में मेरी सॉकेट कनेक्शन है (एक सामान्य थ्रेड वर्ग है, जो एंड्रॉयड 4.0 में अनुमति नहीं है को छोड़कर) है
कारण है कि मेरे पास AsyncTask में कनेक्शन है क्योंकि मैं एंड्रॉइड 4.0 का उपयोग कर रहा हूं और नियमित थ्रेड में नेटवर्क कोड रखने की अनुमति नहीं है।
क्या आप कह रहे हैं कि 4.0 में थ्रेड का उपयोग करने की अनुमति नहीं है? वह सत्य नहीं है। लेकिन फिर भी मेरा जवाब नीचे देखें। –
आप 4.0 में थ्रेड होने के बारे में गलत हैं। आप ** MAIN ** थ्रेड में नेटवर्क कोड नहीं कर सकते हैं। – m0skit0
ओके। मुझे एक अपवाद मिला जब मैंने सामान्य थ्रेड का उपयोग किया (और अन्य धागे पाए जो एक ही समस्या को तेज करते थे)। लेकिन मैंने सोचा कि यह थोड़ा अजीब था, मुझे लगता है कि आपके पास सही है। – Emil