With the special combination of a zero-length buffer and mode set to either IOMode.once or IOMode.all, this function will wait until data is available on the socket without reading anything.
Note that in this case the IOStatus parameter of the callback will not reliably reflect a passive connection close. It is necessary to actually read some data to make sure this case is detected.
Reads data from a stream socket.
Note that only a single read operation is allowed at once. The caller needs to make sure that either on_read_finish got called, or cancelRead was called before issuing the next call to read.