Non-blocking mode I/O either transfers at least one byte or returns immediately with an error or end of stream.

A non-blocking interface should feel fast, responsive and continuous, regardless of network speed. Any action such as loading a new page or clicking a button should have an immediate reaction, and should never be left in limbo.