Networking Programming Models
Like file and device I/O, network transfers can be done synchronously or asynchronously with process service requests.
Synchronous networking proceeds similar to synchronous file and device I/O. Like the
write
()
interface, the send request returns after buffering the
message, but might suspend the calling process if buffer space is not immediately
available. Like the read
()
interface, a receive request suspends
execution of the calling process until data arrives to satisfy the request. Because
there are no guaranteed bounds for transport services, synchronous networking is
inappropriate for processes that must have real-time behavior with respect to other
devices.
Asynchronous networking is provided by non-blocking service requests. Additionally, applications can request asynchronous notification when a connection might be established, when data might be sent, or when data might be received.