A true telescope server class should inherit Server and implement device-specific functions. The class makes heavy use of polymorphism to perform all its work by maintaining a list of connections in the form of Socket pointers. The list actually contains objects of classes that inherit Socket, including one Listener object, created in the constructor, and one or more Connection objects, each representing a TCP/IP connection to a client. Classes that inherit Server (such as ServerLx200) also have a special device-specific connection object (such as Lx200Connection) that represents a serial connection to the device. The step() method calls Socket::prepareSelectFds() and Socket::handleSelectFds() for each connection in the list. These methods are reimplemented for each class.