code: public static long bytesToNumber(byte[] buffer, int start, int length) {
          long result = 0;
          for (int index = start; index < start + length; index++) {
              result = (result << 8) + unsign(buffer[index]);
          }
          return result;
      }
docs: Reconstructs a number that is represented by more than one byte in a network packet in big-endian order.
  
  @param buffer the byte array containing the packet data
  @param start the index of the first byte containing a numeric value
  @param length the number of bytes making up the value
  @return the reconstructed number