multithreading - Passing an ArrayList From Server to Client Java (Trouble) -
it might silly question don't know, seems quite stuck here.
so have server have added few elements in array list this
arraylist<accounts> acc= new arraylist<>();
on run()
i have this
oos.writeobject(acc); oos.flush();
if system.out.println(acc);
shows fine.
on client side using this:
arraylist<accounts> obj; obj = (arraylist <accounts> )ois.readobject();
but doesn't read in end.
this error server:
java.net.socketexception: software caused connection abort: socket write error @ java.net.socketoutputstream.socketwrite0(native method) @ java.net.socketoutputstream.socketwrite(socketoutputstream.java:109) @ java.net.socketoutputstream.write(socketoutputstream.java:153) @ java.io.objectoutputstream$blockdataoutputstream.drain(objectoutputstream.java:1857) @ java.io.objectoutputstream$blockdataoutputstream.setblockdatamode(objectoutputstream.java:1766) @ java.io.objectoutputstream.writenonproxydesc(objectoutputstream.java:1273) @ java.io.objectoutputstream.writeclassdesc(objectoutputstream.java:1227) @ java.io.objectoutputstream.writeordinaryobject(objectoutputstream.java:1411) @ java.io.objectoutputstream.writeobject0(objectoutputstream.java:1174) @ java.io.objectoutputstream.writefatalexception(objectoutputstream.java:1557) @ java.io.objectoutputstream.writeobject(objectoutputstream.java:349) @ mythread.run(servertwothread.java:52)
i think server cant send list reason, , yes account class serializable!
would love input!
edit: found it, wasn't oos, ooos ...
check out code had used in application
public void run() { try { din = new datainputstream(socket.getinputstream()); names.add(din.readutf()); // store user name in arraylist iterator iter = list.iterator(); socket socket; while (iter.hasnext()) { socket = (socket) iter.next(); // creating arraylist written on stream dout = new dataoutputstream(socket.getoutputstream()); objectoutputstream obj = new objectoutputstream(dout); obj.writeobject(names); //write list of users in stream of clients dout.flush(); obj.flush(); } } catch (exception oe) { system.out.println(oe); } }
i know not exact answer yur question somewhat
Comments
Post a Comment