sockets - Java throwing errors when client sends Object to server, with no errors/warnings in IDE -


somebody please help, have client , server , i'm sending object client in code says send packet of data:

   class data implements serializable {         /**          *           */         // private static final long serialversionuid = 1l;          string = "ok baby";         string b = "hi there";     }      public void connect(string[] args) throws ioexception {          socket kksocket = null;         printwriter out = null;         objectoutputstream oos = null;         bufferedreader in = null;          try {             kksocket = new socket("192.168.0.5", 1337);             out = new printwriter(kksocket.getoutputstream(), true);             oos = new objectoutputstream(kksocket.getoutputstream());             in = new bufferedreader(new inputstreamreader(                     kksocket.getinputstream()));         } catch (unknownhostexception e) {             system.err.println("don't know hostname, network problem.");             system.exit(1);         } catch (ioexception e) {             system.err.println("couldn't connect server.");             system.exit(1);         }          bufferedreader stdin = new bufferedreader(new inputstreamreader(                 system.in));         string fromserver;         string fromuser;          // send packet of data         oos.writeobject(new data());         oos.flush();         // send packet of data 

this code doesn't transmit , has error pop-up when tries send, mind helping me out here?

java.io.notserializableexception: java.lang.thread     @ java.io.objectoutputstream.writeobject0(unknown source)     @ java.io.objectoutputstream.defaultwritefields(unknown source)     @ java.io.objectoutputstream.writeserialdata(unknown source)     @ java.io.objectoutputstream.writeordinaryobject(unknown source)     @ java.io.objectoutputstream.writeobject0(unknown source)     @ java.io.objectoutputstream.writearray(unknown source)     @ java.io.objectoutputstream.writeobject0(unknown source)     @ java.io.objectoutputstream.access$300(unknown source)     @ java.io.objectoutputstream$putfieldimpl.writefields(unknown source)     @ java.io.objectoutputstream.writefields(unknown source)     @ java.awt.container.writeobject(unknown source)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(unknown source)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(unknown source)     @ java.lang.reflect.method.invoke(unknown source)     @ java.io.objectstreamclass.invokewriteobject(unknown source)     @ java.io.objectoutputstream.writeserialdata(unknown source)     @ java.io.objectoutputstream.writeordinaryobject(unknown source)     @ java.io.objectoutputstream.writeobject0(unknown source)     @ java.io.objectoutputstream.writearray(unknown source)     @ java.io.objectoutputstream.writeobject0(unknown source)     @ java.io.objectoutputstream.access$300(unknown source)     @ java.io.objectoutputstream$putfieldimpl.writefields(unknown source)     @ java.io.objectoutputstream.writefields(unknown source)     @ java.awt.container.writeobject(unknown source)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(unknown source)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(unknown source)     @ java.lang.reflect.method.invoke(unknown source)     @ java.io.objectstreamclass.invokewriteobject(unknown source)     @ java.io.objectoutputstream.writeserialdata(unknown source)     @ java.io.objectoutputstream.writeordinaryobject(unknown source)     @ java.io.objectoutputstream.writeobject0(unknown source)     @ java.io.objectoutputstream.writearray(unknown source)     @ java.io.objectoutputstream.writeobject0(unknown source)     @ java.io.objectoutputstream.access$300(unknown source)     @ java.io.objectoutputstream$putfieldimpl.writefields(unknown source)     @ java.io.objectoutputstream.writefields(unknown source)     @ java.awt.container.writeobject(unknown source)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(unknown source)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(unknown source)     @ java.lang.reflect.method.invoke(unknown source)     @ java.io.objectstreamclass.invokewriteobject(unknown source)     @ java.io.objectoutputstream.writeserialdata(unknown source)     @ java.io.objectoutputstream.writeordinaryobject(unknown source)     @ java.io.objectoutputstream.writeobject0(unknown source)     @ java.io.objectoutputstream.writearray(unknown source)     @ java.io.objectoutputstream.writeobject0(unknown source)     @ java.io.objectoutputstream.access$300(unknown source)     @ java.io.objectoutputstream$putfieldimpl.writefields(unknown source)     @ java.io.objectoutputstream.writefields(unknown source)     @ java.awt.container.writeobject(unknown source)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(unknown source)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(unknown source)     @ java.lang.reflect.method.invoke(unknown source)     @ java.io.objectstreamclass.invokewriteobject(unknown source)     @ java.io.objectoutputstream.writeserialdata(unknown source)     @ java.io.objectoutputstream.writeordinaryobject(unknown source)     @ java.io.objectoutputstream.writeobject0(unknown source)     @ java.io.objectoutputstream.defaultwritefields(unknown source)     @ java.io.objectoutputstream.writeserialdata(unknown source)     @ java.io.objectoutputstream.writeordinaryobject(unknown source)     @ java.io.objectoutputstream.writeobject0(unknown source)     @ java.io.objectoutputstream.writeobject(unknown source)     @ citadelrpg.main.connect(main.java:124)     @ citadelrpg.main.<init>(main.java:158)     @ citadelrpg.main$2.run(main.java:269)     @ java.awt.event.invocationevent.dispatch(unknown source)     @ java.awt.eventqueue.dispatcheventimpl(unknown source)     @ java.awt.eventqueue.access$000(unknown source)     @ java.awt.eventqueue$3.run(unknown source)     @ java.awt.eventqueue$3.run(unknown source)     @ java.security.accesscontroller.doprivileged(native method)     @ java.security.protectiondomain$1.dointersectionprivilege(unknown source)     @ java.awt.eventqueue.dispatchevent(unknown source)     @ java.awt.eventdispatchthread.pumponeeventforfilters(unknown source)     @ java.awt.eventdispatchthread.pumpeventsforfilter(unknown source)     @ java.awt.eventdispatchthread.pumpeventsforhierarchy(unknown source)     @ java.awt.eventdispatchthread.pumpevents(unknown source)     @ java.awt.eventdispatchthread.pumpevents(unknown source)     @ java.awt.eventdispatchthread.run(unknown source) exception in thread "awt-eventqueue-0" java.lang.nullpointerexception     @ citadelrpg.main$2.run(main.java:277)     @ java.awt.event.invocationevent.dispatch(unknown source)     @ java.awt.eventqueue.dispatcheventimpl(unknown source)     @ java.awt.eventqueue.access$000(unknown source)     @ java.awt.eventqueue$3.run(unknown source)     @ java.awt.eventqueue$3.run(unknown source)     @ java.security.accesscontroller.doprivileged(native method)     @ java.security.protectiondomain$1.dointersectionprivilege(unknown source)     @ java.awt.eventqueue.dispatchevent(unknown source)     @ java.awt.eventdispatchthread.pumponeeventforfilters(unknown source)     @ java.awt.eventdispatchthread.pumpeventsforfilter(unknown source)     @ java.awt.eventdispatchthread.pumpeventsforhierarchy(unknown source)     @ java.awt.eventdispatchthread.pumpevents(unknown source)     @ java.awt.eventdispatchthread.pumpevents(unknown source)     @ java.awt.eventdispatchthread.run(unknown source) 

part of source used second answer this question, , java newbie.

the data class non-static inner class of outer class, extends thread or has attribute of type thread. every non-static inner class has implicit reference outer object. illustrate this, following code

public class outer extends thread {     class data implements serializable {         string = "ok baby";         string b = "hi there";     }      ... } 

is equivalent following :

public class outer extends thread     ... }  class data implements serializable {      string = "ok baby";      string b = "hi there";      outer outer; } 

so, when serializing instance of data, tries serialize outer object, , thread being non-serializable, breaks.

to fix problem, make data inner class static, or make top-level class.


Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -