Thursday 15 April 2010

(Java/Android) Client-side Socket throwing IOException -



(Java/Android) Client-side Socket throwing IOException -

i'm trying connect 2 android devices through sockets, why isn't working? i've tried replacing host address ip address didn't work out.

server side (extends asynctask):

serversocket server; int port; string hostname server = new serversocket(0); port = server.getlocalport(); //is sent client via or code (enumeration<networkinterface> en = networkinterface.getnetworkinterfaces(); en.hasmoreelements();) { networkinterface intf = en.nextelement(); (enumeration<inetaddress> enumipaddr = intf.getinetaddresses(); enumipaddr.hasmoreelements();) { inetaddress inetaddress = enumipaddr.nextelement(); if (!inetaddress.isloopbackaddress()) { hostname = inetaddress.gethostname(); //is sent client via or code } } } socket client = server.accept();

client side (extends asynctask):

socketaddress socketaddress = new inetsocketaddress(serverhostname, serverport); client = new socket(); client.bind(null); client.connect(socketaddress, socket_timeout); //exception happens in method connected = true;

here stack trace:

11-08 03:02:38.050: w/system.err(26424): java.net.sockettimeoutexception: failed connect /fe80::b652:7dff:feb5:ece2%wlan0%7 (port 54579) after 10000ms 11-08 03:02:38.090: w/system.err(26424): @ libcore.io.iobridge.connecterrno(iobridge.java:150) 11-08 03:02:38.090: w/system.err(26424): @ libcore.io.iobridge.connect(iobridge.java:112) 11-08 03:02:38.120: w/system.err(26424): @ java.net.plainsocketimpl.connect(plainsocketimpl.java:192) 11-08 03:02:38.160: w/system.err(26424): @ java.net.plainsocketimpl.connect(plainsocketimpl.java:459) 11-08 03:02:38.210: w/system.err(26424): @ java.net.socket.connect(socket.java:848) 11-08 03:02:38.210: w/system.err(26424): @ com.example.virtualcard.qrinternetclientthread.doinbackground(qrinternetclientthread.java:55) 11-08 03:02:38.220: w/system.err(26424): @ android.os.asynctask$2.call(asynctask.java:264) 11-08 03:02:38.220: w/system.err(26424): @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:305) 11-08 03:02:38.220: w/system.err(26424): @ java.util.concurrent.futuretask.run(futuretask.java:137) 11-08 03:02:38.230: w/system.err(26424): @ android.os.asynctask$serialexecutor$1.run(asynctask.java:208) 11-08 03:02:38.230: w/system.err(26424): @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1076) 11-08 03:02:38.230: w/system.err(26424): @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:569) 11-08 03:02:38.230: w/system.err(26424): @ java.lang.thread.run(thread.java:856)

i've solved problem. turns out should have used code on client before socket creation, , had alter thing work ip addressed instead of host names.

inetaddress addr = inetaddress.getbyname(serverip); socketaddress socketaddress = new inetsocketaddress(addr, serverport); //here follows old client code socketaddress socketaddress = new inetsocketaddress(serverhostname, serverport); client = new socket(); client.bind(null); client.connect(socketaddress, socket_timeout); //exception happens in method connected = true;

java android sockets android-asynctask serversocket

No comments:

Post a Comment