MoBa-Package Home

TSRCPBaseClient

Declaration

TSRCPBaseClient = class(TIdTCPClient)

Description

Basisklasse für die clientseitige Implementierung des SRCP-Protokolls.
In dieser Basisklasse sind die grundlegenden Funktionen für die Kommunikation zwischen Client und Server für den Client implementiert. Es werden Kommando- und Info-Kanal unterstützt.

Die an den Server gesendeten Kommandos, sowie die vom Server gesendeten Antworten werden mittels TSRCPCmd interpretiert und umgesetzt. in TSRCPBaseClient werden die grundlegenden Einstellungen für die Kommunikation vorgenommen. So wird auf dieser Ebene z.B. die zu verwendete Protokollversion festgelegt. Zudem bietet diese Klasse die Möglichket, die Kommunikation zu protokollieren.

Indy arbeitet mit Non-Blocking Threads. Um zu verhindern, daß bei langen Antwortszeiten des Servers die Benutzeroberfläche nicht reagiert, sollte eine Komponente vom Typ IdAntiFeez mit auf das Formular gesetzt werden. Diese ist in der Komponentenpallete auf der Seite 'Indy Misc' zu finden.

Overview

Unit: SrcpClnt
Properties Methods Events
ClientMode SendCommand OnError
SessionID ReceiveAnswer OnLog
Response Connect
LogEnabled Disconnect
Version

Properties

read write property ClientMode: TSRCPClientMode;
Bestimmt den verwendeten Verbindungsmodus, der während der Handshake-Phase ausgehandelt wird. Es kann zwischen Kommando- und Info-Modus ausgewählt werden.
read only property SessionID: Integer;
Vom Server beim erfolgreichen Verbindungsaufbau übermittelte Identifikationsnummer des SRCP-Clients. Mit dieser Nummer kann der Client eindeutig identifiziert werden.
read only property Response: string;
Dieser Eigenschaft beinhaltet immer die letzte empfangene Antwort des Servers ohne eine weitere Verarbeitung.
read write property LogEnabled: Boolean;
Schaltet die Protokollierung der Kommunikation ein oder aus. Ist LogEnabled auf True gesetzt, wird für jede gesendete und empfangene Textzeile ein OnLog Event ausgelöst.
read write property Version: TSRCPCommandVersion;
Mit dieser Eigenschaft kann eine bevorzugte Protokoll-Version ausgewählt werden. Der Server übermittelt beim ersten Kontakt die von ihm unterstützten Protokollversionen. Nur aus der Schnittmenge zwischen der vom Server übermittelten Liste sowie der vom Client unterstützen Versionen kann die zu verwendende Version ausgewählt werden.
Der Client versucht die neueste Version die von Client und Server unterstützt wird, zu verwenden.

Methods

procedure SendCommand(Cmd: TSRCPCmd);
Sendet das in Cmd angegebene SRCP-Kommando an den Server.
function ReceiveAnswer(Cmd: TSRCPCmd): Boolean;
Wartet auf die Antwort eines Servers. Der vom Server empfangene Antwortstring wird interpretiert und in Cmd gespeichert. Wurde die Antwort erfolgreich interpretiert ist der Rückgabewert True.
procedure Connect(const ATimeout: Integer = IdTimeoutDefault); override;
Versucht eine Verbindung mit dem in der von TIdTCPClient geerbten Eigenschaft Host genannten Server aufzubauen. Der verwendete Port wird aus der von TIdTCPClient geerbten Eigenschaft Port entnommen.
procedure Disconnect;
Beendet eine Verbindung zu einem Server.

Events

property OnError: TNotifyEvent;
Ereigniss wird durch eine nicht interpretierbare Server-Antwort ausgelöst.
property OnLog: TLogEvent;
Ereigniss wird bei jedem Senden und Empfangen einer Textzeile ausgelöst.
LogEnabled muß auf True gesetzt sein, damit der Event ausgelöst wird.

Hierarchy

TIdTCPClient
   |
TSRCPBaseClient

See also

TSRCPClientMode, TSRCPCommandVersion, TSRCPCmd, TLogEvent, TSRCPCommandClient, TSRCPInfoClient

©Roman Lauer
Zuletzt geändert am: 15.01.2005