docs: public synchronized void close() {
          LOGGER.debug("disconnect from {}", socket);
          byte[] header = new byte[OtherConstants.FDFS_PROTO_PKG_LEN_SIZE + 2];
          Arrays.fill(header, (byte) 0);
  
          byte[] hex_len = BytesUtil.long2buff(0);
          System.arraycopy(hex_len, 0, header, 0, hex_len.length);
          header[OtherConstants.PROTO_HEADER_CMD_INDEX] = CmdConstants.FDFS_PROTO_CMD_QUIT;
          header[OtherConstants.PROTO_HEADER_STATUS_INDEX] = (byte) 0;
          try {
              socket.getOutputStream().write(header);
              socket.close();
          } catch (IOException e) {
              LOGGER.error("close connection error", e);
          } finally {
              IOUtils.closeQuietly(socket);
          }
  
      }