Re: Detection of socket connecting process, two thread problem
I'm newbie in Java and after several attempts and changing approaches i've =
decided to use synchronization like this below. I think it protects code (?=
) to use socket in the same time. Two threads using this procedures (disco=
nnect and connect after) wait (if they need) when the second thread finishe=
d connecting and start to do the same: disconnect and connect. I can't find=
the way: don't doing disconnection-connection by the second thread when th=
e first one started this just second before.
When error connections occurs in the threads (reading/writing) then call
reconnection procedure insede it are:
{...
close_connection();
set_connection();
....
}
which are below
public synchronized void close_connection() {
try {
socket.shutdownInput();
socket.shutdownOutput();
socket.close();
try {
Thread.sleep(500);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
public synchronized boolean setconnection() {
boolean result=true;
socket = new Socket();
try {
socket.connect(new InetSocketAddress(address, port), 500);
in = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
out = new BufferedWriter(new OutputStreamWriter(
socket.getOutputStream()));
} catch (IOException e)
{result=false;
}
return result;
}
Artik