'recv(numb = 4096, timeout = default) -> str
Receives up to `numb` bytes of data from the tube, and returns
as soon as any quantity of data is available.
If the request is not satisfied before ``timeout`` seconds pass,
all data is buffered and an empty string (``\'\'``) is returned.
Raises:
exceptions.EOFError: The connection is closed
Returns:
A string containing bytes received from the socket,
or ``\'\'`` if a timeout occurred while waiting.
Examples:
>>> t = tube()
>>> # Fake a data source
>>> t.recv_raw = lambda n: \'Hello, world\'
>>> t.recv() == \'Hello, world\'
True
>>> t.unrecv(\'Woohoo\')
>>> t.recv() == \'Woohoo\'
True
>>> with context.local(log_level=\'debug\'):
...    _ = t.recv() # doctest: +ELLIPSIS
[...] Received 0xc bytes:
\'Hello, world\''

def recv(self, numb=None, timeout=default):

    numb = self.buffer.get_fill_size(numb)
    return (self._recv(numb, timeout) or '')
