Puedes utilizar
SetSoTimeout() de la clase socket. Lo que hace este metodo es definir un parametro de tiempo. Si haces un
read() del socket y no se recibe respuesta en el tiempo que especificaste (en milisegundos) se genera una excepcion
java.net.SocketTimeoutException