Internet Direct (Indy)
Home
PreviousUpNext
TIdSystatUDPServer Class

Implements a UDP-based SYSTAT protocol server.

Pascal
TIdSystatUDPServer = class(TIdUDPServer);

TIdSystatUDPServer is a TIdUDPServer descendant that implements a UDP-based Active Users (commonly referred to as systat) protocol server, as described in the Internet Standards document: 

RFC 866 - Active Users  

The Active Users (or systat) protocol provides a useful debugging and measurement tool. An active users service simply sends a list of the currently active users on the host without regard to input received from a client connection. An active user is one who is logged in, such as listed in the SYSTAT or WHO processes on a UNIX (or other?) system. 

The TCP-based Active Users Service is defined as a connection based application on TCP. A server listens for TCP connections on TCP port

  1. Once a connection is established a list of the currently active
users is sent out the connection (and any data received is thrown away). The service closes the connection after sending the list. 

The UDP-based Active Users Service is defined as a datagram based application on UDP. A server listens for UDP datagrams on UDP port 11. When a datagram is received, an answering datagram is sent containing a list of the currently active users (the data in the received datagram is ignored). 

If the list does not fit in one datagram then a sequence of datagrams are sent, with complete information for a user (a line) guaranteed in a single datagram. The user side should wait for a timeout for all datagrams to arrive. Note that they are not necessarily in order. 

There is no specific syntax for the list of users. It is recommended that it be limited to the ASCII printable characters, space, carriage return, and line feed. Each user should be listed on a separate line. 

 

Using TIdSystatUDPServer

 

Set the value in the DefaultPort property (when different than the default port number for the Systat protocol). 

TIdSystatUDPServer requires a TIdUDPSystatEvent event handler procedure to be assigned to the OnSystat property to implement building the active user list for client sessions on the server. 

Optional listener threads may be defined by adding values to the Bindings property. If not value are define in Bindings, a default value is created a runtime (when the Active property is set to True). 

Set Active to True start listening for client connections to the server, and to begin execution of sessions accepted by the listener thread(s). 

Set Active to False to stop listening for new sessions on the server, and to terminate active client sessions for the server.

Internet Direct (Indy) version 10.1.5
Copyright © 1993-2006, Chad Z. Hower (aka Kudzu) and the Indy Pit Crew. All rights reserved.
Website http://www.indyproject.org.
Post feedback to the Indy Documentation newsgroup.