java - Socket null - Android Tcp socket connection -
i want build sample android app make socket based connection between pc , android application on tcp. code of client.java file that:-
package com.myapp.android.androidsocketclient; import java.io.bufferedwriter; import java.io.ioexception; import java.io.outputstreamwriter; import java.io.printwriter; import java.net.inetaddress; import java.net.socket; import java.net.unknownhostexception; import android.app.activity; import android.app.instrumentation; import android.os.bundle; import android.util.log; import android.view.view; import android.widget.edittext; public class client extends activity { private socket socket; private static final int serverport = ****; private static final string server_ip = "***.**.**.**"; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); new thread(new clientthread()).start(); } public void onclick(view view) { log.d("button click0", "happening"); requestlogin("userid", "password", "123456"); /*try { edittext et = (edittext) findviewbyid(r.id.edittext01); string str = et.gettext().tostring(); printwriter out = new printwriter(new bufferedwriter( new outputstreamwriter(socket.getoutputstream())), true); out.println(str); } catch (unknownhostexception e) { e.printstacktrace(); } catch (ioexception e) { e.printstacktrace(); } catch (exception e) { e.printstacktrace(); }*/ } class tmessageheader { public short messagecode; public int messagelength; public byte channelid; public char[] clientid = new char[16]; public int timestamp; public int errorcode; public int errormessagelength; public byte numberofdecimals; public char source; public int clientdispatcherid; } public tmessageheader getmessageheader(string userid, tloginrequest pstructure) { log.d("messageheader", "called"); tmessageheader msgheader = new tmessageheader(); msgheader.channelid = 0;//need set on bases of user scrip selection cash ==> 0 , fno not yet decided. if (!userid.isempty()) msgheader.clientid = userid.tochararray(); msgheader.errorcode = 0; msgheader.errormessagelength = 0; msgheader.messagecode = 1; msgheader.messagelength = 134; msgheader.numberofdecimals = 0; msgheader.source = 'a'; msgheader.timestamp = 0; log.d("returned", string.valueof(msgheader)); return msgheader; } class tloginrequest { tmessageheader messageheader; char[] userid = new char[20]; char[] password = new char[16]; char[] ipaddress = new char[16]; char[] macaddress = new char[20]; int versionno; char[] panordob = new char[13]; } public void requestlogin(string ploginid, string ppassword, string ppandob) { log.d("requestlogin", "called"); tloginrequest request = new tloginrequest(); request.ipaddress = "ipaddress".tochararray(); request.macaddress = "macaddress".tochararray(); request.panordob = ppandob.trim().tochararray(); request.password = ppassword.trim().tochararray(); request.userid = ploginid.trim().touppercase().tochararray(); request.versionno = integer.parseint("5"); request.userid = "userid".tochararray(); request.messageheader = getmessageheader("userid", request); request.messageheader.clientid = ploginid.trim().tochararray(); try { if(socket != null) { log.d("socket not", "null"); log.d("outputstream", string.valueof(socket.getoutputstream())); outputstreamwriter outwrite = new outputstreamwriter(socket.getoutputstream()); bufferedwriter buffwrite = new bufferedwriter(outwrite); printwriter out = new printwriter(buffwrite, true); out.println(request); } log.d("socket is", "null"); } catch (ioexception e) { e.printstacktrace(); log.d("ioexception", "occured"); } } class clientthread implements runnable { @override public void run() { try { inetaddress serveraddr = inetaddress.getbyname(server_ip); socket = new socket(serveraddr, serverport); } catch (unknownhostexception e1) { log.d("unknownhostexception", "true"); e1.printstacktrace(); } catch (ioexception e1) { e1.printstacktrace(); log.d("ioexception", "true"); } } } }
when run code,in log socket equals null. how can resolve issue? appriciated.
log file :-
03-17 11:57:46.227: d/androidruntime(293): >>>>>> androidruntime start com.android.internal.os.runtimeinit <<<<<< 03-17 11:57:46.227: d/androidruntime(293): checkjni on 03-17 11:57:46.577: d/androidruntime(293): calling main entry com.android.commands.pm.pm 03-17 11:57:46.597: i/activitymanager(61): start proc com.android.defcontainer service com.android.defcontainer/.defaultcontainerservice: pid=301 uid=10003 gids={1015, 2001} 03-17 11:57:46.798: d/dalvikvm(301): gc_explicit freed 292k, 54% free 2568k/5511k, external 1625k/2137k, paused 41ms 03-17 11:57:46.957: w/activitymanager(61): no content provider found for: 03-17 11:57:47.007: w/activitymanager(61): no content provider found for: 03-17 11:57:47.018: d/packageparser(61): scanning package: /data/app/vmdl-912569523.tmp 03-17 11:57:47.157: i/packagemanager(61): removing non-system package:com.javacodegeeks.android.androidsocketclient 03-17 11:57:47.157: i/activitymanager(61): force stopping package com.javacodegeeks.android.androidsocketclient uid=10041 03-17 11:57:47.168: i/dalvikvm(61): jit: resizing jittable 512 1024 03-17 11:57:47.248: d/packagemanager(61): scanning package com.javacodegeeks.android.androidsocketclient 03-17 11:57:47.248: i/packagemanager(61): package com.javacodegeeks.android.androidsocketclient codepath changed /data/app/com.javacodegeeks.android.androidsocketclient-2.apk /data/app/com.javacodegeeks.android.androidsocketclient-1.apk; retaining data , using new 03-17 11:57:47.248: i/packagemanager(61): unpacking native libraries /data/app/com.javacodegeeks.android.androidsocketclient-1.apk 03-17 11:57:47.258: d/installd(35): dexinv: --- begin '/data/app/com.javacodegeeks.android.androidsocketclient-1.apk' --- 03-17 11:57:47.908: d/dalvikvm(312): dexopt: load 78ms, verify+opt 352ms 03-17 11:57:47.937: d/installd(35): dexinv: --- end '/data/app/com.javacodegeeks.android.androidsocketclient-1.apk' (success) --- 03-17 11:57:47.937: w/packagemanager(61): code path pkg : com.javacodegeeks.android.androidsocketclient changing /data/app/com.javacodegeeks.android.androidsocketclient-2.apk /data/app/com.javacodegeeks.android.androidsocketclient-1.apk 03-17 11:57:47.948: w/packagemanager(61): resource path pkg : com.javacodegeeks.android.androidsocketclient changing /data/app/com.javacodegeeks.android.androidsocketclient-2.apk /data/app/com.javacodegeeks.android.androidsocketclient-1.apk 03-17 11:57:47.948: d/packagemanager(61): activities: com.javacodegeeks.android.androidsocketclient.client 03-17 11:57:47.958: i/activitymanager(61): force stopping package com.javacodegeeks.android.androidsocketclient uid=10041 03-17 11:57:48.078: i/installd(35): move /data/dalvik-cache/data@app@com.javacodegeeks.android.androidsocketclient-1.apk@classes.dex -> /data/dalvik-cache/data@app@com.javacodegeeks.android.androidsocketclient-1.apk@classes.dex 03-17 11:57:48.078: d/packagemanager(61): new package installed in /data/app/com.javacodegeeks.android.androidsocketclient-1.apk 03-17 11:57:48.186: i/activitymanager(61): force stopping package com.javacodegeeks.android.androidsocketclient uid=10041 03-17 11:57:48.238: d/dalvikvm(130): gc_explicit freed 15k, 51% free 2906k/5895k, external 4767k/5643k, paused 49ms 03-17 11:57:48.318: i/activitymanager(61): start proc com.svox.pico broadcast com.svox.pico/.voicedatainstallerreceiver: pid=313 uid=10009 gids={} 03-17 11:57:48.338: w/recognitionmanagerservice(61): no available voice recognition services found 03-17 11:57:48.528: i/activitythread(313): pub com.svox.pico.providers.settingsprovider: com.svox.pico.providers.settingsprovider 03-17 11:57:48.588: d/dalvikvm(170): gc_explicit freed 294k, 52% free 2771k/5703k, external 1625k/2137k, paused 342ms 03-17 11:57:48.658: d/dalvikvm(61): gc_explicit freed 1092k, 47% free 4277k/8007k, external 4373k/5573k, paused 75ms 03-17 11:57:48.738: i/installd(35): unlink /data/dalvik-cache/data@app@com.javacodegeeks.android.androidsocketclient-2.apk@classes.dex 03-17 11:57:48.748: d/androidruntime(293): shutting down vm 03-17 11:57:48.758: d/dalvikvm(293): gc_concurrent freed 102k, 72% free 295k/1024k, external 0k/0k, paused 0ms+1ms 03-17 11:57:48.758: d/jdwp(293): got wake-up signal, bailing out of select 03-17 11:57:48.758: d/dalvikvm(293): debugger has detached; object registry had 1 entries 03-17 11:57:49.088: d/androidruntime(326): >>>>>> androidruntime start com.android.internal.os.runtimeinit <<<<<< 03-17 11:57:49.088: d/androidruntime(326): checkjni on 03-17 11:57:49.438: d/androidruntime(326): calling main entry com.android.commands.am.am 03-17 11:57:49.448: i/activitymanager(61): starting: intent { act=android.intent.action.main cat=[android.intent.category.launcher] flg=0x10000000 cmp=com.javacodegeeks.android.androidsocketclient/.client } pid 326 03-17 11:57:49.468: i/activitymanager(61): start proc com.javacodegeeks.android.androidsocketclient activity com.javacodegeeks.android.androidsocketclient/.client: pid=334 uid=10041 gids={3003} 03-17 11:57:49.488: d/androidruntime(326): shutting down vm 03-17 11:57:49.498: d/dalvikvm(326): gc_concurrent freed 103k, 69% free 319k/1024k, external 0k/0k, paused 1ms+1ms 03-17 11:57:49.498: d/dalvikvm(326): debugger has detached; object registry had 1 entries 03-17 11:57:50.178: i/armassembler(61): generated scanline__00000177:03515104_00001002_00000000 [ 87 ipp] (110 ins) @ [0x44c766f0:0x44c768a8] in 366685 ns 03-17 11:57:50.468: i/activitymanager(61): displayed com.javacodegeeks.android.androidsocketclient/.client: +1s9ms 03-17 11:57:55.568: d/dalvikvm(130): gc_explicit freed 128k, 51% free 2890k/5895k, external 4816k/5643k, paused 55ms 03-17 11:57:55.808: d/button click0(334): happening 03-17 11:57:55.808: d/requestlogin(334): called 03-17 11:57:55.808: d/messageheader(334): called 03-17 11:57:55.808: d/returned(334): com.javacodegeeks.android.androidsocketclient.client$tmessageheader@405345f8 03-17 11:57:55.808: d/socket not(334): null 03-17 11:57:55.818: d/outputstream(334): org.apache.harmony.luni.net.socketoutputstream@40534ac8 03-17 11:57:55.818: d/socket is(334): null 03-17 12:01:49.917: d/sntpclient(61): request time failed: java.net.socketexception: address family not supported protocol
you socket is(334): null
because you're printing unconditionally. you're missing else.
Comments
Post a Comment