Topic Path: Symbol Reference > Classes > TIdSystatUDP Class
TIdSystatUDP Class

Implements a UDP-based SYSTAT protocol client.

TIdSystatUDP = class(TIdUDPClient);

TIdSystat is a TIdUDPClient descendant that implements a UDP-based Active Users (commonly referred to as systat) protocol client, 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. 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 TIdSystat


To use the TIdSystatUDP client, perform the following steps: 

  • Set Host to an IP address or host name for the systat server
  • Set the Port number for the UDP tranmission (if different than the default value)
  • Set the ReceiveTimeout milliseconds to wait for a response
  • Call GetStat using a TStings or a TStringList to store the user list

Copyright 1993-2006, Chad Z. Hower (aka Kudzu) and the Indy Pit Crew. All rights reserved.
Post feedback to the Indy Docs Newsgroup.