The concepts of server and client and the roles assigned to them form the client-server software concept.
To interact with the client (or clients, if simultaneous work with several clients is supported), the server allocates the necessary interprocess communication resources (shared memory, pipe, socket, etc.) and waits for requests to open a connection (or, in fact, requests for the service provided). Depending on the type of such resource, the server can serve processes within one computer system or processes on other machines through data transmission channels (for example, COM port) or network connections.
The format of client requests and server responses is determined by the protocol. Open protocol specifications are described by open standards, for example, Internet protocols are defined in RFC documents.
Depending on the tasks being performed, some servers, in the absence of service requests, may be idle waiting. Others may do some work (for example, work on collecting information), for such servers, working with clients may be a secondary task.