public void receiveWithHeaderReadTimeout(int timeoutMillis) throws IOException {
    if (socket != null) {
      synchronized (getCommBuffer()) {
        readHeaderAndBody(true, timeoutMillis);
      }
    } else {
      throw new IOException("Dead Connection");
    }
  }
Read a message, populating the state of this {@code Message} with information received via its
socket

@param timeoutMillis timeout setting for reading the header (0 = no timeout)
geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Message.java