docs: @Override
      protected int doSendReceiveFragment ( byte[] buf, int off, int length, byte[] inB ) throws IOException {
          if ( this.handle.isStale() ) {
              throw new IOException("DCERPC pipe is no longer open");
          }
  
          int have = this.handle.sendrecv(buf, off, length, inB, getMaxRecv());
  
          int fraglen = Encdec.dec_uint16le(inB, 8);
          if ( fraglen > getMaxRecv() ) {
              throw new IOException("Unexpected fragment length: " + length);
          }
  
          while ( have < fraglen ) {
              int r = this.handle.recv(buf, have, length - have);
              if ( r == 0 ) {
                  throw new IOException("Unexpected EOF");
              }
              have += r;
          }
  
          return have;
      }