Please ignore this question which has been requested to be deleted by the author. Please see the comments for the reason.
The following code always throws
java.net.SocketException: Socket closed
at the last statement (socket.connect(myInetSocketAddress, 6000);
)
Socket socket = new Socket();
socket.connect( myInetSocketAddress, 6000);
//use socket to do some reading
...
socket.close();
socket = new Socket();
//The following is bound to throw java.net.SocketException: Socket closed
socket.connect(myInetSocketAddress, 6000);
If waiting (Sleep()) is added, everything will be fine as following:
Socket socket = new Socket();
socket.connect( myInetSocketAddress, 6000);
//use socket to do some reading
...
socket.close();
Thread.sleep(1000); //critical to prevent java.net.SocketException: Socket closed
socket = new Socket();
//The following works fine after Thread.sleep(1000)
socket.connect(myInetSocketAddress, 6000);
Could anyone shed some light on this?