code: @Override
    public int readTimeout(byte []buf, int offset, int length, long timeout)
      throws IOException
    {
      return read(buf, offset, length);
      /*
      Socket s = _s;
        
      if (s == null) {
        return -1;
      }
      
      int oldTimeout = s.getSoTimeout();
      s.setSoTimeout((int) timeout);
      
      try {
        int result = read(buf, offset, length);
        
        if (result >= 0) {
          return result;
        }
        else if (_is == null || _is.available() < 0) {
          return -1;
        }
        else {
          return ReadBuffer.READ_TIMEOUT;
        }
      } finally {
        s.setSoTimeout(oldTimeout);
      }
      */
    }
docs: Reads bytes from the socket.
  
  @param buf byte buffer receiving the bytes
  @param offset offset into the buffer
  @param length number of bytes to read
  @return number of bytes read or -1
  @exception throws ClientDisconnectException if the connection is dropped