Android: Socket not connecting and throws exception -


i having following android code connects web socket program. web socket running on java application. both socket , android code in eclipse.

the problem is, android program not connecting socket @ all. handled under button click mentioned in code below. after line socket = new socket("192.168.1.21", 8081); throwing exception, not sure why. tried refer sample code internet, couldn't see strange issue in below code.

could please me on solving please?

android code:

mhandler = new handler();  clientthread = new clientthread();          button connectbtn = (button) findviewbyid(r.id.button2);         connectbtn.setonclicklistener(new view.onclicklistener() {              @override             public void onclick(view v) {                 // todo auto-generated method stub                 //start contacting socket                  mhandler.post(mupdate);  }         });   private runnable mupdate = new runnable() {      public void run() {               try {                  clientthread.run();                  pw = new printwriter(socket.getoutputstream(), true);                 edittext randtxtfield = (edittext) findviewbyid(r.id.edittext1);                         pw.println(randtxtfield.gettext().tostring());                                 pw.flush();                   }                 catch (exception ex) {                     ex.printstacktrace();                 }                   // read randrom id returned socket                 bufferedreader socketreader;                 try {                     socketreader = new bufferedreader(new inputstreamreader(socket.getinputstream()));                     msgstr = socketreader.readline();                     log.d("msgstr: ", msgstr);                 } catch (ioexception e) {                     // todo auto-generated catch block                     e.printstacktrace();                 }      }      };    class clientthread implements runnable {         @override         public void run()         {              try {              // exception throw when executing line itself...                 socket = new socket("192.168.1.21", 8081);             }             catch (unknownhostexception e1) {                 e1.printstacktrace();             }             catch (ioexception e1) {                 e1.printstacktrace();             }           }     } 

exception:

 03-24 14:51:54.672: d/dalvikvm(21673): gc_for_alloc freed 295k, 4% free 9800k/10128k, paused 19ms, total 20ms 03-24 14:54:19.974: d/socketserverip(21673): 192.168.1.21 03-24 14:54:19.984: w/system.err(21673): android.os.networkonmainthreadexception 03-24 14:54:19.984: w/system.err(21673):    @ android.os.strictmode$androidblockguardpolicy.onnetwork(strictmode.java:1145) 03-24 14:54:19.984: w/system.err(21673):    @ libcore.io.blockguardos.connect(blockguardos.java:84) 03-24 14:54:19.984: w/system.err(21673):    @ libcore.io.iobridge.connecterrno(iobridge.java:127) 03-24 14:54:19.984: w/system.err(21673):    @ libcore.io.iobridge.connect(iobridge.java:112) 03-24 14:54:19.984: w/system.err(21673):    @ java.net.plainsocketimpl.connect(plainsocketimpl.java:192) 03-24 14:54:19.984: w/system.err(21673):    @ java.net.plainsocketimpl.connect(plainsocketimpl.java:172) 03-24 14:54:19.984: w/system.err(21673):    @ java.net.socket.startupsocket(socket.java:567) 03-24 14:54:19.984: w/system.err(21673):    @ java.net.socket.<init>(socket.java:226) 03-24 14:54:19.984: w/system.err(21673):    @ com.example.cobrowseandroid.randomidactivity$clientthread.run(randomidactivity.java:262) 03-24 14:54:19.984: w/system.err(21673):    @ com.example.cobrowseandroid.randomidactivity$1.run(randomidactivity.java:152) 03-24 14:54:19.984: w/system.err(21673):    @ android.os.handler.handlecallback(handler.java:733) 03-24 14:54:19.984: w/system.err(21673):    @ android.os.handler.dispatchmessage(handler.java:95) 03-24 14:54:19.984: w/system.err(21673):    @ android.os.looper.loop(looper.java:136) 03-24 14:54:19.984: w/system.err(21673):    @ android.app.activitythread.main(activitythread.java:5017) 03-24 14:54:19.984: w/system.err(21673):    @ java.lang.reflect.method.invokenative(native method) 03-24 14:54:19.984: w/system.err(21673):    @ java.lang.reflect.method.invoke(method.java:515) 03-24 14:54:19.984: w/system.err(21673):    @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:779) 03-24 14:54:19.984: w/system.err(21673):    @ com.android.internal.os.zygoteinit.main(zygoteinit.java:595) 03-24 14:54:19.984: w/system.err(21673):    @ dalvik.system.nativestart.main(native method) 03-24 14:54:19.984: d/androidruntime(21673): shutting down vm 03-24 14:54:19.984: w/dalvikvm(21673): threadid=1: thread exiting uncaught exception (group=0x415efba8) 03-24 14:54:19.984: e/androidruntime(21673): fatal exception: main 03-24 14:54:19.984: e/androidruntime(21673): process: com.example.cobrowseandroid, pid: 21673 03-24 14:54:19.984: e/androidruntime(21673): java.lang.nullpointerexception 03-24 14:54:19.984: e/androidruntime(21673):    @ com.example.cobrowseandroid.randomidactivity$1.run(randomidactivity.java:179) 03-24 14:54:19.984: e/androidruntime(21673):    @ android.os.handler.handlecallback(handler.java:733) 03-24 14:54:19.984: e/androidruntime(21673):    @ android.os.handler.dispatchmessage(handler.java:95) 03-24 14:54:19.984: e/androidruntime(21673):    @ android.os.looper.loop(looper.java:136) 03-24 14:54:19.984: e/androidruntime(21673):    @ android.app.activitythread.main(activitythread.java:5017) 03-24 14:54:19.984: e/androidruntime(21673):    @ java.lang.reflect.method.invokenative(native method) 03-24 14:54:19.984: e/androidruntime(21673):    @ java.lang.reflect.method.invoke(method.java:515) 03-24 14:54:19.984: e/androidruntime(21673):    @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:779) 03-24 14:54:19.984: e/androidruntime(21673):    @ com.android.internal.os.zygoteinit.main(zygoteinit.java:595) 03-24 14:54:19.984: e/androidruntime(21673):    @ dalvik.system.nativestart.main(native method) 

you should not invoke network stuff on ui thread.

you calling

mhandler.post(mupdate)

which runs in current thread (ui thread) method "run". use e.g. instead:

thread t = new thread(mupdate); t.start(); 

to run network code in separated thread...

also don't forget call ui related code in ui thread (for e.g. getactivity().runonuithread()).


Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -