@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;
    }
@ 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 ; }
{@inheritDoc}

@see jcifs.dcerpc.DcerpcHandle#doSendReceiveFragment(byte[], int, int, byte[])