Network Independence

Developing a network-independent server application eliminates the complexities of network data transfer from the development process, and allows you to concentrate on the application's functionality. Similarly, a client application can be designed to take advantage of standard, transport-independent interprocess communications (IPC) interfaces. This helps ensure that the client and server applications can run on a wide variety of network platforms with little or no modification.

Windows NT currently supports several sets of networking APIs that provide this transport independence: remote procedure call (RPC), the Windows Sockets API, named pipes, and the OLE/Component Object Model (COM).

Remote Procedure Call

The Win32 API provides remote procedure calls (RPCs) to enable applications to call functions remotely. With RPC, communication with other processes becomes as easy as calling a function. RPC operates between processes on a single computer or on different computers on a network. One way to think of RPC is as a DLL that works on a network.

The RPC provided by the Win32 API is compliant with the Open Software Foundation (OSF) Distributed Computing Environment (DCE). This means that RPC applications written using the Win32 API are able to communicate with other RPC applications running with other operating systems that support DCE. RPC automatically supports data conversion to account for different hardware architectures and for byte-ordering between dissimilar environments.

For more information about RPC, see About Remote Procedure Call.

Windows Sockets API

The Windows Sockets API is intended to provide a single API to which application developers can program and multiple network software vendors can conform. Furthermore, in the context of a particular version of Microsoft Windows, it defines an application binary interface such that an application written using the Windows Sockets API can work with a conforming protocol implementation from any network software vendor. This specification defines the library calls and associated semantics to which an application developer can program and which a network software vendor can implement, allowing an effective exchange of data from client to server.

For more information about the Windows Sockets API, see Windows Sockets.

Named Pipes

A named pipe is a one-way or two-way communication mechanism between a server process and one or more client processes. Under Windows NT, named pipes are implemented as a file system and share many characteristics associated with files with respect to use and manipulation.

For more information about named pipes, see "Interprocess Communication" in the "Windows Base Services" section of the Microsoft Platform SDK.