You can use Socket.setSoTimeout to set how long you are prepared for a read to complete. setSoTimeout has no effect on how long you are willing to wait for a write (how long you are willing to wait for the other end to accept data), just on how long you are willing to wait for the other end to produce data.
You can use Socket.setSoLinger to control how long the Socket lingers, (waits to close when there are still unsent data). When you shutdown, the other end should continue to read any buffered data to let the other end close before closing itself.
In other instances you need to roll your own timeouts with a Timer or raw Threads.
This page is posted
Optional Replicator mirror
Your face IP:[18.104.22.168]
You are visitor number|