The interface provides an API for use by applications. The functions in this API perform work that is common to all transports and systems, such as parsing an address into a host and port number. The functions in this API call transport specific functions that are contained in a table whose contents are defined at compile time. This table contains an entry for each type of transport. Each entry is a record containing mostly pointers to function that implements the interface for the given transport.
This API does not provide an abstraction for select()
or poll()
.
These functions are themselves transport independent, so an additional
interface is not needed for these functions. It is also unclear how such
an interface would affect performance.