Clients issue requests to a server to perform various operations such as creating and manipulating windows etc. Both client and server operate asynchronously. The server queues client requests and processes them at its convenience. Clients don't usually wait for a response from the server.