As the title says I need a way to stop or interrupt a thread that is blocked waiting on an input from the socket.
Close the socket and the read will be unblocked (will exit with a subclass of IOException). Read reacting to Thread.interrupt is platform dependent (won't work on Solaris 10 for example).