Zum Hauptinhalt springen

SckRead

obj -> SckRead(int1, var2[, int3]) : int

Ausführbar von Clients mit grafischer Oberfläche Ausführbar vom Server Ausführbar von Clients mit Programmierschnittstelle Ausführbar von der Web-Schnittstelle Ausführbar vom Druckprozessor Ausführbar von der ODBC-Schnittstelle Ausführbar vom SOA-Service

Daten vom Socket lesen

Details

Mit dieser Funktion werden Daten vom Socket (obj) gelesen. Durch die Angabe einer Option in (int1) kann die Anzahl der Zeichen auf eine Zeile oder auf die Größe der in (var2) angegebenen Variablen begrenzt werden.

info

In der Beispiel-Datenbank "CodeLibrary" befindet sich ein Beispiel zur Kommuikation mit einem FTP-Server.

In (var2) muss ein Datenbankfeld, eine Variable oder ein Array angegeben werden. Arrays aus Alphafeldern sind dabei nicht zulässig. Sofern (int3) nicht angegeben ist, wird die der Größe der Variablen (var2) entsprechende Anzahl von Bytes oder eine Zeile eingelesen. Der Wert in (int3) kann daher auch nicht größer als die Größe der Variable selbst sein.

Das Resultat gibt die Anzahl der gelesenen Bytes zurück. Ist das Resultat negativ, ist ein Fehler aufgetreten, und das Resultat enthält den Fehlerwert.

Je nach Datentyp werden folgende Formate benutzt:

  • alpha Es kann sowohl eine feste als auch eine variable Anzahl von Zeichen eingelesen werden. Bei einer festen Anzahl steht in (int3) die Anzahl der zu lesenden Bytes. Bei einer variablen Anzahl wird (int3) weggelassen und die Option _SckReadMax in (int1) verwendet. In diesem Fall werden soviele Zeichen eingelesen, wie momentan empfangen wurden oder bis die maximale Länge erreicht ist. Alternativ kann mit der Option _SckLine eine komplette Zeile gelesen werden, die durch CR/LF abgeschlossen ist. CR/LF wird dabei nicht in die Variable übertragen. Diese Option wird bei vielen zeilenorientierten Protokollen benutzt (SMTP, POP3 usw.).
  • float Es werden 8 Bytes gelesen. Das Format entspricht dem IEEE-Double.
  • word Es werden 2 Bytes gelesen. Das Format entspricht dem Intel-Wortformat (16 Bit - little endian).
  • int Es werden 4 Bytes gelesen. Das Format entspricht dem Intel-Doppelwortformat (32 Bit - little endian).
  • date Es werden 4 Bytes gelesen. (Byte 1 = Tag, Byte 2 = Monat, Byte 3 = Jahr, Byte 4 ist grundsätzlich leer.)
  • time Es werden 4 Bytes gelesen. (Byte 1 = Stunde, Byte 2 = Minute, Byte 3 = Sekunde, Byte 4 = Hundertstelsekunde.)
  • logic Es wird 1 Byte gelesen (Wert gleich 0 entspricht false, Wert gleich 1 entspricht true).

Mögliche Fehlerwerte:

  • _ErrHdlInvalid: (obj) ist nicht definiert oder kein Socket-Deskriptor.
  • _ErrSckDown: Der Socket wurde außerhalb der Applikation geschlossen
  • _ErrSckSelect: Bei der Socketabfrage ist ein Fehler aufgetreten
  • _ErrSckRead: Beim Lesen des Sockets ist ein Fehler aufgetreten
  • _ErrSckReadOverflow: empfangene Zeile länger als die angegebene Variable
  • _ErrTimeout: Beim Lesen oder Schreiben des Sockets ist ein Timeout aufgetreten