5 ms·
Don, did you ever figure out the difference between a "client" and a "server"?
by mcguire 6y ago
Don, did you ever figure out the difference between a "client" and a "server"?
- DonHopkins 6y agoSure: xterm a client of your display and keyboard and mouse, remote input and output services that the X11 server provides over the network. And at the same time, a web browser is the client of computing and data servers in the cloud, provided over the network. In reality, there can be many different client/server relationships existing in different directions over the same full duplex network connection. It's really a bi-directional multiplexed messaging channel, not a pure strict hierarchical relationship, and many client/server dependencies can go both ways over the same connection, at the same time. You can even run an ssh that opens tunnels in both directions, then tunnel X and http connections over that. Once a connection is established, it really don't matter which end initiated the connection (or how many links and proxies and tunnels there are along the way) -- you're just sending messages both ways. "Client/Server" is an over-simplified way of describing what's possible.
- ddingus 6y agoOnly the server, actually serves the graphics to the user. Within the context of the X Window System, the server is the body of code responsible for delivering the display to the user viewing it.
- bitwize 6y ago> Only the server, actually serves the graphics to the user. The server actually serves the user to the remote client. It's like "you are not the customer, you are the product". The remote program needs to communicate graphically with you, and connects to the X server to do this; therefore, you are not the requester of a resource, you are the resource being served. :)
- DonHopkins 6y agoGreat analogy. Think of it like Amazon Mechanical Turk.
- ddingus 6y agoI like it. Clever, and current context relevant. Cheers.
- mcguire 6y agoThink of it in terms of a print server. It's a long-running process that other processes connect to, in order to request a service. It handles the "impedance mismatch" between the clients and the hardware it controls---in the case of a print server, it demultiplexes requests and translates them into something the printer can deal with; in the case of X, it displays the information as requested by the client and provides notifications of events as requested by the client.