मेरे समस्या जब यह वस्तु दूसरी बार पढ़ने का प्रयास यह अपवाद फेंकता है,:StreamCorruptedException: अमान्य प्रकार कोड: एसी
java.io.StreamCorruptedException: invalid type code: AC
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1356)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at Client.run(BaseStaInstance.java:313)
java.io.StreamCorruptedException: invalid type code: AC
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1356)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at Client.run(BaseStaInstance.java:313)
पहली बार मैं ठीक उसी वस्तु संदेश भेजने; हालांकि, जब मैं दूसरी बार एक ही चीज़ करने की कोशिश करता हूं, तो यह उपरोक्त त्रुटि को फेंकता है। क्या मुझे readObject() विधि को फिर से intialize करने की आवश्यकता है? मैंने नीचे दी गई रेखा से प्राप्त होने वाली संदेश ऑब्जेक्ट को भी मुद्रित किया है और यह ठीक उसी उदाहरण के समान है जहां यह ठीक काम करता है।
Object buf = myInput.readObject();
मुझे लगता है कि इसमें शामिल होने में कुछ समस्या है, लेकिन मुझे वास्तव में जोड़ने के लिए कोई उपयोग नहीं है। मैं बस हर बार एक ताजा रेखा पढ़ना चाहता हूँ। मैं वास्तव में इस बग को ठीक करने में कुछ मदद की सराहना करता हूं। धन्यवाद।
==================================
है कि एक लाइन से पहले, मैं कर रहा हूँ रन() विधि में सॉकेट के लिए केवल इनपुट और आउटपुट ऑब्जेक्ट्स बनाना। वस्तु घोषणा कक्षा में रन() विधि के बाहर है: -
@Override
public void run() {
try {
sleep((int) 1 * 8000);
} catch (Exception e) {
e.printStackTrace();
}
try {
//Creating input and output streams to transfer messages to the server
myOutput = new ObjectOutputStream(skt.getOutputStream());
myInput = new ObjectInputStream(skt.getInputStream());
while (true) {
buf = myInput.readObject();
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
} catch (Exception e) {
e.printStackTrace();
}
}
}
आप सही हैं; मैं वस्तु को बंद नहीं करता हूं। मुझे यकीन नहीं है कि यह कैसे करें।
मुझे यकीन है कि जहां किसी चीज़ –
एनबी आप EOFException पकड़ने चाहिए और यह इलाज बंद नहीं करने के लिए नहीं कर रहा हूँ वीएम तर्क नीचे जोड़कर हल एक त्रुटि के रूप में: स्टैक ट्रेस लॉग या मुद्रित न करें; बस इसे रीडिंग लूप को समाप्त करने दें। मुझे नहीं पता कि आप अज्ञातहोस्टएक्सप्शन को क्यों पकड़ रहे हैं, जहां आप हैं: इसे संबंधित प्रयास ब्लॉक के भीतर से नहीं फेंक दिया जा सकता है। नींद() सचमुच समय की बर्बादी है। इसे हटा दो। – EJP