The SCO TCP/IP networking library routines consist of:
These routines have been designed for flexibility. As more communication protocols become available, the same user interface will be used to access network-related address databases. The only difference is the values returned to the user. Because these values are normally supplied by the system, users should not need to be directly aware of the communication protocol and/or naming conventions in use.
Locating a service on a remote host requires many levels of mapping before client and server may communicate. A service is assigned a name which is intended for human use; for example, ``the login server on host XX.'' This name, and the name of the peer host, must then be translated into network addresses which are not necessarily suitable for human use.
Finally, the address must then be used in locating a physical location and route to the service. The details of these three mappings are likely to vary between network architectures. The process can be further complicated by additional layers required to interface disparate systems, or for security.
For instance, a network should not require hosts to be named in such a way that their physical location is known by the client host. Instead, underlying services in the network should locate the host at the time a client host requests it. Naming hosts independently of location may induce overhead in establishing connections, because a discovery process must take place, but this allows a host to be physically mobile without requiring it to notify its clients of its current location.
The SCO TCP/IP networking library routines are C programming language function calls. You can call them from your program but they do not go into the kernel to be executed. They are relinked with the library at link-time. The interface can support a variety of protocols. The file netdb.h must be included when using any of these routines.
Standard routines are provided for mapping: