TBeCbTCPClient
TBeCbTCPClient
Die Klasse TBeCbTCPClient ermöglicht die Kommunikation auf Basis einer TCP/IP-Socket-Verbindung mit einem TCP-Server. Die Klasse stellt Funktionen und Methoden zum Verbindungsaufbau und zum Lesen und Schreiben von Daten über bestehende Verbindungen zur Verfügung.
Hinweis: Derzeit wird nur Version 4 des IP-Protokolls unterstützt.
Eigenschaften
Eigenschaft | Beschreibung |
---|---|
CbConnectTimeout:N | Timeout in Millisekunden für den Verbindungsaufbau (Default: -1: kein Timeout) |
CbReadTimeout:N | Timeout in Millisekunden für das Lesen von Daten (Default: -1: kein Timeout) |
CbHost:C | IP-Adresse oder Name des Host, mit dem kommuniziert werden soll. (Default: "") |
CbPort:N | Port auf dem eine Verbindung mit dem angegebenen Host aufgebaut werden soll. (Default: -1) |
Funktionen / Methoden
Funktion / Methode | Parameter | Beschreibung |
---|---|---|
CbConnect() Stellt eine Verbindung zu einem TCP-Server unter Verwendung der Werte der Eigenschaften CbHost und CbPort her. Kann innerhalb der durch den Wert der Eigenschaft CbConnectTimeout definierten Zeitraums keine Verbindung zum TCP-Server erstellt werden, führt dies zu einer Exception. Der Aufruf dieser Methode für einen TCP-Client, für den bereits eine Verbindung zu einem TCP-Server besteht, führt zu einer Exception. | ||
CbDisconnect() Löst eine bestehende Verbindung zwischen dem TCP-Client und einen TCP-Server. Der Aufruf dieser Methode für einen TCP-Client, für den keine Verbindung zu einem TCP-Server besteht, führt zu keiner Exception. | ||
CbConnected():L Liefert: | ||
CbReadLn():C Liest aus der bestehenden Verbindung zwischen TCP-Client und TCP-Server eine Zeile mit einem ANSI-String und liefert den Inhalt der Zeile (ohne Zeilenumbruch). Kann innerhalb der durch den Wert der Eigenschaft CbReadTimeout definierten Zeitraums keine Zeile über die Verbindung gelesen werden, führt dies zu einer Exception. | ||
CbWriteLn() Schreibt in die bestehende Verbindung zwischen TCP-Client und TCP-Server eine Zeile mit dem übergebenen ANSI-String. | aAnsiString:C | ANSI-String (ohne Zeilenumbruch), dessen Inhalt in einer Zeile an der TCP-Server übermittelt werden soll. |
CbReadLnUTF8():C Liest über die bestehende Verbindung zwischen TCP-Client und TCP-Server eine Zeile mit einem UTF8-String und liefert den Inhalt der Zeile (ohne Zeilenumbruch). Kann innerhalb der durch den Wert der Eigenschaft CbReadTimeout definierten Zeitraums keine Zeile über die Verbindung gelesen werden, führt dies zu einer Exception. | ||
CbWriteLnUTF8() Schreibt in die bestehende Verbindung zwischen TCP-Client und TCP-Server eine Zeile mit dem übergebenen UTF8-String. | aUTF8String:C | UTF8-String (ohne Zeilenumbruch), dessen Inhalt in einer Zeile an den TCP-Server übermittelt werden soll. |
CbReadCurrentBufferAsAnsiString():C Liest über die bestehende Verbindung zwischen TCP-Client und TCP-Server einen ANSI-String und liefert dessen Inhalt. Kann innerhalb der durch den Wert der Eigenschaft CbReadTimeout definierten Zeitraums kein ANSI-String über die Verbindung gelesen werden, liefert die Funktion einen leeren ANSI-String. | ||
CbReadCurrentBufferAsUTF8String():C Liest über die bestehende Verbindung zwischen TCP-Client und TCP-Server einen UTF8-String und liefert dessen Inhalt. Kann innerhalb der durch den Wert der Eigenschaft CbReadTimeout definierten Zeitraums kein UTF8-String über die Verbindung gelesen werden, liefert die Funktion einen leeren UTF8-String. | ||
CbWriteFile() Schreibt in die bestehende Verbindung zwischen TCP-Client und TCP-Server den Inhalt der Datei mit dem übergebenen Namen. | aFileName:C | Name der Datei, deren Inhalt an den TCP-Server übermittelt werden soll. |
CbWriteAnsiString() Schreibt in die bestehende Verbindung zwischen TCP-Client und TCP-Server eine Zeile mit dem übergebenen ANSI-String. | aAnsiString:C | ANSI-String, dessen Inhalt in einer Zeile an der TCP-Server übermittelt werden soll. |
Beispiel
//******************************************************************************
// Öffnet eine TCP-Verbindung zum Localhost auf dem Port 5000.
// Übermittelt anschließend eine Zeile mit dem Text "test" an den TCP-Server und
// liest eine Zeile mit der Antwort des TCP-Servers.
// Hat der Client nach Ablauf von einer Sekunde keine Zeile empfangen, dann
// wird eine Exception ausgelöst und der Vorgang abgebrochen.
//******************************************************************************
|oCbTCPClient, cErrorText:C := "", cRead:C := ""|
oCbTCPClient := CreateObject("TBeCbTCPClient"),
StartSeq,
StartSeq,
oCbTCPClient.CbHost := "127.0.0.1",
oCbTCPClient.CbPort := 5000,
oCbTCPClient.CbReadTimeout := 1000,
oCbTCPClient.CbConnect(),
oCbTCPClient.CbWriteLn("test"),
cRead := oCbTCPClient.CbReadLn(),
oCbTCPClient.CbDisconnect(),
OnError,
cErrorText := GetErrorText(GetErrorObj()),
StopSeq,
Always,
DestroyObject(oCbTCPClient),
StopSeq,
//******************************************************************************
// Öffnet eine TCP-Verbindung zum Localhost auf dem Port 5000.
// Übermittelt anschließend eine Zeile mit dem Text "test" an den TCP-Server und
// liest einen ANSI-String mit der Antwort des TCP-Servers.
// Hat der Client nach Ablauf von einer Sekunde keinen ANSI-String empfangen,
// dann wird ein leerer ANSI-String zurückgegeben und erneut auf einen
// ANSI-String gewartet.
// Wurde ein ANSI-String mit einer Länge von mindestens zwei Zeichen empfangen,
// wird dieser ausgewertet.
//******************************************************************************
|oCbTCPClient, cErrorText:C := "", cRead:C := ""|
oCbTCPClient := CreateObject("TBeCbTCPClient"),
StartSeq,
StartSeq,
oCbTCPClient.CbHost := "127.0.0.1",
oCbTCPClient.CbPort := 5000,
oCbTCPClient.CbReadTimeout := 1000,
oCbTCPClient.CbConnect(),
oCbTCPClient.CbWriteLn("test"),
while Len(cRead) < 2 do
cRead += oCbTCPClient.CbReadCurrentBufferAsAnsiString(),
end,
oCbTCPClient.CbDisconnect(),
OnError,
cErrorText := GetErrorText(GetErrorObj()),
StopSeq,
Always,
DestroyObject(oCbTCPClient),
StopSeq,
if cRead = 'OK' then
Meld("OK!"),
else
Meld("NOT OK!"),
endif,
//******************************************************************************
// Öffnet eine TCP-Verbindung zum Localhost auf dem Port 5000.
// Übermittelt anschließend den Inhalt der Datei "test.txt" an den TCP-Server
// und liest eine Zeile mit der Antwort des TCP-Servers.
// Hat der Client nach Ablauf von einer Sekunde keine Zeile empfangen, dann
// wird eine Exception ausgelöst und der Vorgang abgebrochen.
//******************************************************************************
|oCbTCPClient, cErrorText:C := "", cRead:C := ""|
oCbTCPClient := CreateObject("TBeCbTCPClient"),
StartSeq,
StartSeq,
oCbTCPClient.CbHost := "127.0.0.1",
oCbTCPClient.CbPort := 5000,
oCbTCPClient.CbReadTimeout := 1000,
oCbTCPClient.CbConnect(),
oCbTCPClient.CbWriteFile("test.txt"),
cRead := oCbTCPClient.CbReadLn(),
oCbTCPClient.CbDisconnect(),
OnError,
cErrorText := GetErrorText(GetErrorObj()),
StopSeq,
Always,
DestroyObject(oCbTCPClient),
StopSeq,
//******************************************************************************
//
//******************************************************************************
|oCbTCPClient, cErrorText:C := "", cRead:C := ""|
oCbTCPClient := CreateObject("TBeCbTCPClient"),
StartSeq,
StartSeq,
oCbTCPClient.CbHost := "127.0.0.1",
oCbTCPClient.CbPort := 5002,
oCbTCPClient.CbConnect(),
oCbTCPClient.CbWriteAnsiString("write"),
oCbTCPClient.CbDisconnect(),
OnError,
cRead := GetErrorText(GetErrorObj()),
StopSeq,
Always,
DestroyObject(oCbTCPClient),
StopSeq,
cRead