public ssize_t get_available_bytes ()
Get the amount of data pending in the OS input buffer, without blocking.
If this is a UDP or SCTP socket, this will return the size of just the next packet, even if additional packets are buffered after that one.
Note that on Windows, this function is rather inefficient in the UDP case, and so if you know any plausible upper bound on the size of the incoming packet, it is better to just do a receive with a buffer of that size, rather than calling get_available_bytes first and then doing a receive of exactly the right size.
the number of bytes that can be read from the socket without blocking or truncating, or -1 on error.