2011-06-10 27 views
11

मैं अपने एंड्रॉइड ऐप से टीसीपी पर अपने पीसी पर डेटा भेजने की कोशिश कर रहा हूं।एंड्रॉइड (क्लाइंट के रूप में) से टीसीपी डेटा भेजना - कोई डेटा नहीं भेजा जा रहा है?

कोड इस प्रकार है:

Socket socket = new Socket("10.0.78.75", 50505); 

OutputStream out = socket.getOutputStream();  
PrintWriter output = new PrintWriter(out);   

mStatusText.setText("Sending Data to PC");   
output.println("Hello from Android");    
mStatusText.setText("Data sent to PC");    

socket.close();          
mStatusText.setText("Socket closed");    

मैं यह सब कर रही है, जबकि, तथापि, सर्वर अनुप्रयोग (सी # में लिखा) किसी भी डेटा नहीं मिलता है पर किसी भी त्रुटि नहीं मिलता है। यह क्लाइंट को उससे कनेक्ट करता है, और देखता है कि डेटा भेजा जा रहा है, हालांकि, डेटा स्ट्रिंग खाली हो गई है ... और यह क्यों हो रहा है पर विचार?

पीएस: सर्वर कोड निम्न साइट से कॉपी किया गया है और सी # टीसीपी क्लाइंट के साथ परीक्षण किया गया है। http://www.switchonthecode.com/tutorials/csharp-tutorial-simple-threaded-tcp-server

+0

आप एक डिवाइस पर या एम्युलेटर पर मौजूद हैं: और आप AndroidManifest.xml में इंटरनेट अनुमति के बारे में याद है? क्या आपके पास आपके मैनिफेस्ट में इंटरनेट अनुमति है? –

उत्तर

13

println(..) के बाद out.flush();out.close(); डालने का प्रयास करें;

+0

यह चाल है, धन्यवाद! –

2

कुल अनुमान लगाएं, लेकिन क्या आपने बंद होने से पहले आउटपुट स्ट्रीम पर flush() पर कॉल करने का प्रयास किया है?

10

मुझे एक ही समस्या थी और हैफाज़ार्ड के समाधान मेरे लिए पर्याप्त नहीं थे। मुझे लगता है कि आपको out.flush(); और out.close(); के बजाय (इस मामले में) output.flush(); और output.close(); का उपयोग करना चाहिए।

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
<uses-sdk> के बाद

और इससे पहले कि <application>

+0

हाँ आप सही @ कुकीपीन्सस्टर, output.flush() हैं; और output.close(); मेरे लिये कार्य करता है। यहां सुधार के लिए धन्यवाद। –

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

  • कोई संबंधित समस्या नहीं^_^