Lade...
 

CX_TCP_CONNECTION

CX_TCP_CONNECTION

Klassenhierarchie
Beschreibung:

Diese Klasse stellt eine Schnittstelle dar, um von Instant-View aus einfache TCP-Dienste anzusprechen. Die Klasse ist auf das Versenden und Empfangen von einfachen Zeichenketten beschränkt. Binärdaten können mit dieser Klasse nicht übertragen werden. Die Rückgabewerte der meisten Methoden dienen als Kontrollwert, ob der Aufruf erfolgreich war. Liefert solche Methode FALSE, dann kann die konkrete Fehlermeldung mit GetLastError abgefragt werden.

Die CX_TCP_CONNECTION stellt dabei den Client dar und die verbundene Gegenstelle den Server.

Sollte keine Verbindung von ClassiX aus zum gewünschten Dienst aufgebaut werden können, prüfen Sie bitte zuerst, ob es sich um ein generelles Verbindungsproblem handelt, oder um einen Fehler in ClassiX.
Hier ist kurz zusammengefasst, wie Verbindungsprobleme überprüft werden können.

Code-Beispiel:

Damit die folgenden Beispiele funktionieren, müssen die einfach Windows TCP-Dienste aktiviert werden. (Echo, Daytime, Quote of the Day, ...)  Dazu unter "Systemsteuerung\Programme\Programme und Funktionen" -> "Windows-Funktionen aktivieren oder deaktivieren" -> "Einfache TCPIP-Dienste" (Hacken setzen). Anschließend den Rechner neustarten, in einer Kommandozeile mit Administratorrechten sc start simptcp eingeben.

Zitat des Tages abfragen:

Var(quote, con)

CreateTransObject(CX_TCP_CONNECTION) -> con

"localhost" 17 con Call(ConnectTo) ifnot { con Call(GetLastError) Attention return } //Open connection

 

con Call(Read) ifnot { con Call(GetLastError) Attention return } //Read Data

con Call(ResultString) -> quote //Get read data

"Quote of the day:\n" quote + Attention

 

con Call(CloseConnection)

 

Anfrage&Antwort beim Echo-Dienst:

 

Var(con)

CreateTransObject(CX_TCP_CONNECTION) -> con

"localhost" 7 con Call(ConnectTo) ifnot { con Call(GetLastError) Attention return } //Open connection

 

//Request using Write/Read

"Are you there?" con Call(Write) ifnot { con Call(GetLastError) Attention return } //Send request

con Call(Read) ifnot { con Call(GetLastError) Attention return } //Wait for & read resonse

con Call(ResultString) Attention //Output reply

 

//Request using Ask

"Are you still there?" con Call(Ask) ifnot { con Call(GetLastError) Attention return } //Send request, wait for response and read it

con Call(ResultString) Attention //Output reply

 

con Call(CloseConnection)

 

Methodenverzeichnis (MDI)
Funktion MA* Parameter Rückgabe Kurzbeschreibung
Ask   STRING INTEGER Sendet eine Anfrage und wartet auf eine Antwort.
CloseConnection       Schließt eine offene Verbindung.
ConnectTo   STRING, INTEGER INTEGER Öffnet eine Verbindung mit dem angegebenen Host und Portnummer.
GetLastError     STRING Sollte ein Fehler aufgetreten sein, dann liefert diese Methode die genaue Ursache des Fehlers.
HasData     INTEGER Prüft, ob Daten am Socket eingegangen sind und damit, ob das nächste Ask oder Read blockieren würde.
IsOpen     INTEGER Gibt zurück, ob eine Verbindung offen ist.
OpenConnection     INTEGER Versucht eine geschlossene Verbindung wieder zu öffnen.
Read     INTEGER Versucht etwas auf dem TCP-Socket zu empfangen. Der Aufruf blockiert so lange, bis etwas empfangen wird.
ResultString     STRING Liefert den String, der zuvor mit Ask oder Read empfangen wurde.
Write   STRING INTEGER Sendet etwas über den TCP-Socket. Diese Methode blockiert nur so lange, bis die Daten in den Sendepuffer übermittelt wurden.

* MA = Member-Access-Funktion

Datenverzeichnis (DDI)
Datenfeld Typ Referenz-Klasse I* Kurzbeschreibung
readTimeout INTEGER     Zeit in ms, maximale Wartezeit eines Read-Aufrufs
(0 = unendlich)
(standard = CX_TCP_CONNECTION_READ_TIMEOUT

* I = Indizierbares Datenfeld

Verwendung in AppsWH
Modul Kurzbeschreibung