'Receive bytes data into a writeable buffer-like object.
Return the number of bytes read.'

def recv_bytes_into(self, buf, offset=0):

    self._check_closed()
    self._check_readable()
    with memoryview(buf) as m:
        itemsize = m.itemsize
        bytesize = (itemsize * len(m))
        if (offset < 0):
            raise ValueError('negative    offset')
        elif (offset > bytesize):
            raise ValueError('offset    too    large')
        result = self._recv_bytes()
        size = result.tell()
        if (bytesize < (offset + size)):
            raise BufferTooShort(result.getvalue())
        result.seek(0)
        result.readinto(m[(offset // itemsize):((offset + size) // itemsize)])
        return size
