1.3.1 Connections

The server establishes a single instance of this protocol representing the entirety of the graphical objects to be drawn by the client. This protocol specifies that the client has to clean up all states associated with a connection when that connection is terminated, so this structure is a convenient way to manage per-server-process resources on the client.

There are two ways in which a remote connection can be closed:

Graceful closure: The connection is closed explicitly by the server. For every open channel, the server first deletes all resources on the channel and then closes the channel. Finally, after the server closes all channels, it closes the connection. For more information see section 3.2.5.15.

Network disconnect: This occurs when the client's network connection has broken unexpectedly, without the server explicitly closing the connection. In this case, the connection data is still present on the client. When a network disconnect is detected, the client cleans up all data structures associated with the connection and channels on that connection. This clean-up occurs as if the server has explicitly closed the connection. When connectivity is re-established, the server will recreate the connection to the client.