2013-02-21 12 views
8

से डेटा कनेक्शन पर ईपीआईपीई (टूटा हुआ पाइप) मेरे एंड्रॉइड ऐप में मैं एक ऑडियो स्ट्रीम पढ़ना चाहता हूं और इसके शॉउटकास्ट मेटाडेटा को पार्स करना चाहता हूं। http://code.google.com/p/npr-android-app/source/browse/Npr/src/org/npr/android/news/StreamProxy.java?r=e4984187f45c39a54ea6c88f71197762dbe10e72java.net.SocketException: sendto विफल: स्थानीयहोस्ट

समस्या यह है कि यह एक डेटा कनेक्शन पर काम नहीं कर रहा है: मैं इसे एनपीआर परियोजना में के रूप में एक StreamProxy का उपयोग कर काम कर गया। एनपीआर को भी यही समस्या मिली है।

समेकित करने के लिए, यह प्रॉक्सी स्थानीय वेब सर्वर के रूप में चल रही है, जो ऐप और रिमोट स्ट्रीम के बीच एक इंटरफ़ेस बना रही है। यह जेनरेटेड कस्टम पोर्ट के साथ स्थानीयहोस्ट 127.0.0.1 पर चल रहा है।

client.getOutputStream().write(buff, 0, readBytes); 

हालांकि कि लाइन एक डेटा कनेक्शन पर यह अपवाद पैदा करता है:

java.net.SocketException: sendto failed: EPIPE (Broken pipe) 
जब सर्वर धारा डेटा पढ़ रही है, यह इसके अनुप्रयोग के रूप में आप StreamProxy में लाइन 223 पर पढ़ सकते हैं करने के लिए प्रतिकृति

मैं सॉकेट और स्ट्रीमिंग में एक विशेषज्ञ नहीं हूँ। मैं उस मामले में वाईफाई और डेटा कनेक्शन के बीच कोई फर्क नहीं पड़ता।

+0

हाय, यहां तक ​​कि मैं स्ट्रीमिंग खेलने के लिए एक प्रॉक्सी चैनल का उपयोग कर रहा हूँ। यह कुछ उपकरणों पर इस त्रुटि को फेंक रहा है। क्या आपको इसके लिए कोई समाधान मिला। – vijaykumarg

+0

@ रोमैन-पिएल क्या आपने कभी यह पता लगाया था कि समस्या क्या थी? मुझे एक ही समस्या है लेकिन समाधान नहीं मिल रहा है। – Nick

+0

नहीं: -/यह एक बहुत अजीब है। अब मैं स्ट्रीमिंग के साथ समानांतर में एक कनेक्शन का उपयोग कर रहा हूँ।आदर्श नहीं है लेकिन कम से कम यह हर परिस्थितियों में काम कर रहा है –

उत्तर

-1

नीचे कुछ समाधान हैं!

सबसे पहले यह सुनिश्चित करें कि आपके क्लाइंट के पास उस सर्वर के समान संस्करण है जिसे आप शामिल करने का प्रयास कर रहे हैं। यदि आपके पास एक ही संस्करण नहीं है तो आप MCNostalgia डाउनलोड कर सकते हैं और अपने क्लाइंट को डाउनग्रेड करने के लिए इसका उपयोग कर सकते हैं।

अद्यतन जावा

आप किसी भी असंगति समस्याएं आती नहीं करना चाहते हैं, तो मैं तुम्हें नवीनतम जावा क्रम पर्यावरण (jre 7.0_05) स्थापित करने के लिए सलाह देते हैं। ऐसा करने से पहले, यह अनुशंसा की जाती है कि आप अन्य पिछले संस्करणों को अनइंस्टॉल करें। यदि आपका ऑपरेटिंग सिस्टम 32bit में चलता है तो केवल 32bit (x86) संस्करण स्थापित करें। यदि आपके पास 64bit है, तो इस सटीक क्रम में 64bit और फिर 32bit से शुरू करें।

अक्षम संयुक्त राष्ट्र जरूरी नेटवर्क मेजबान

Hamachi और Virtual Box उनमें से एक हो सकता है। वे आपके कनेक्शन को धीमा कर सकते हैं या हस्तक्षेप कर सकते हैं। नेटवर्क नियंत्रण कक्ष तक पहुंचें और "modify network cards" (या कुछ समान) पर क्लिक करें। जिस भी होस्ट को आप अक्षम करने की आवश्यकता है उस पर राइट क्लिक करें और फिर अक्षम करें पर क्लिक करें।

अपने फ़ायरवॉल अक्षम

आप नियंत्रण कक्ष में फ़ायरवॉल सेटिंग्स का उपयोग और वहाँ उसे अक्षम कर सकते हैं। यदि यह काम नहीं करता है तो आप अपने राउटर की फ़ायरवॉल को अक्षम करने का भी प्रयास कर सकते हैं। यदि वे असफल होते हैं तो आपके एंटी-वायरस को अक्षम करने का प्रयास करें (इन विकल्पों की अनुशंसा नहीं की जाती है क्योंकि हैकर्स आसानी से आपके कंप्यूटर घुसपैठ कर सकते हैं)।

यह भी के लिए काम करता है:

> Internal exception: java.net.SocketException: Software caused 
> connection abort: socket write error 
+1

यह एंड्रॉइड है - जेरे को अपडेट करने का कोई विकल्प नहीं :( –

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