#
bnet_recv

To read a packet, one uses the subroutine:

int bnet_recv(BSOCK *sock) This routine is similar to a read() except that it handles the low level details. bnet_read() first reads packet length that follows as four bytes in network byte order. The data is read into sock->msg and is sock->msglen bytes. If the sock->msg is not large enough, bnet_recv() realloc() the buffer. It will return an error (-2) if maxbytes is less than the record size sent. It returns:

     * Returns number of bytes read
     * Returns 0 on end of file
     * Returns -1 on hard end of file (i.e. network connection close)
     * Returns -2 on error

It should be noted that bnet_recv() is a blocking read.