Wednesday 15 February 2012

sockets - Java detect disconnect from Server in Client -



sockets - Java detect disconnect from Server in Client -

i made java-application has client- , server-side. both sides communicate via sockets. works until server application killed , can't close or shutdown serversocket.

the client not seem notice broken connection , hangs while trying read next object.

i tried sending test object client every 5 seconds observe server offline, not work.

i might have mention occurs when running server app on windows , client on linux (ubuntu in virtualbox). windows-windows works fine. netstat gives me established on linux, although killed server.

client code:

requestsocket = new socket("192.168.1.3", 1234); out = new objectoutputstream(new cipheroutputstream(requestsocket.getoutputstream(), ec)); in = new objectinputstream(new cipherinputstream(requestsocket.getinputstream(), dc)); new thread() { public void run() { while(true) { seek { out.writeobject(obj); out.flush(); } grab (ioexception e) { e.printstacktrace(); } system.out.println("sent"); seek { thread.sleep(5000); } grab (interruptedexception e) {} } } }.start();

server code:

serversocket = new serversocket(1234); socket = serversocket.accept(); out = new objectoutputstream(new cipheroutputstream(clientsocket.getoutputstream(), ec)); in = new objectinputstream(new cipherinputstream(clientsocket.getinputstream(), dc)); //do-while-reading on socket[...]

i read multiple threads told me how observe lost connection on server side, found none client side or answers did not work me.

set read timeout on socket, of suitable duration, plenty include normal transfers, , grab sockettimeoutexception.

java sockets cross-platform disconnect

No comments:

Post a Comment