Take a look at empty and leastSize. https://github.com/rejectedsoftware/vibe.d/blob/master/source/vibe/core/stream.d#L33
@Rikki CattermoleThanks for your reply, but it is not what I want, and I cant implement my goal with them.
in boost::asio, It has a method like this : basic_stream_socket::read_some (1 of 2 overloads)This function is used to read data from the stream socket. The function call will block until one or more bytes of data has been read successfully, or until an error occurs.