पर समान लेकिन संशोधित ऑब्जेक्ट भेजना मेरे पास निम्न कोड है जो या तो मेरे हिस्से पर एक बग या गलतफहमी दिखाता है।ऑब्जेक्टऑटपुटस्ट्रीम
मैंने एक ही सूची भेजी, लेकिन ऑब्जेक्टऑटपुटस्ट्रीम पर संशोधित किया। एक बार [0] और अन्य [1] के रूप में। लेकिन जब मैं इसे पढ़ता हूं, तो मुझे दो बार [0] मिलता है। मुझे लगता है कि यह इस तथ्य के कारण होता है कि मैं एक ही ऑब्जेक्ट पर भेज रहा हूं और ऑब्जेक्टऑटपुटस्ट्रीम उन्हें किसी भी तरह कैशिंग कर रहा है।
क्या यह काम करना चाहिए, या मुझे एक बग फाइल करना चाहिए?
import java.io.*; import java.net.*; import java.util.*; public class OOS { public static void main(String[] args) throws Exception { Thread t1 = new Thread(new Runnable() { public void run() { try { ServerSocket ss = new ServerSocket(12344); Socket s= ss.accept(); ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream()); List same = new ArrayList(); same.add(0); oos.writeObject(same); same.clear(); same.add(1); oos.writeObject(same); } catch(Exception e) { e.printStackTrace(); } } }); t1.start(); Socket s = new Socket("localhost", 12344); ObjectInputStream ois = new ObjectInputStream(s.getInputStream()); // outputs [0] as expected System.out.println(ois.readObject()); // outputs [0], but expected [1] System.out.println(ois.readObject()); System.exit(0); } }
नहीं, जिसने इसे हल नहीं किया, मैक्स सही था, रीसेट का उपयोग करें() – Pyrolistical
यह काम नहीं करता है। 'फ्लश()' में यहां जादुई गुण नहीं हैं। – EJP