为什么不抓SocketTimeoutException呢?这样更加利于组织代码和清晰结构。clientSocket.setSoTimeout(30000);try {
  str = input.readUTF();
}
catch(SocketTimeoutException ste){
   //执行超时的代码
}
catch (IOException e) {
   //执行socket断开操作的代码
}