SckRead
obj -> SckRead(int1, var2[, int3]) : int
Daten vom Socket lesen
Details
- obj: Socket-Deskriptor
- int1:
- Optionen:
_SckLine_SckReadMax
- var2: Feld, Variable oder Array
- int3: Anzahl zu lesender Bytes (optional)
- Resultat:
intAnzahl der gelesenen Bytes oder Fehlerwert - Siehe: Verwandte Befehle ,
SckWrite ()
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.
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:
alphaEs 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_SckReadMaxin (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_SckLineeine 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.).floatEs werden 8 Bytes gelesen. Das Format entspricht dem IEEE-Double.wordEs werden 2 Bytes gelesen. Das Format entspricht dem Intel-Wortformat (16 Bit - little endian).intEs werden 4 Bytes gelesen. Das Format entspricht dem Intel-Doppelwortformat (32 Bit - little endian).dateEs werden 4 Bytes gelesen. (Byte 1 = Tag, Byte 2 = Monat, Byte 3 = Jahr, Byte 4 ist grundsätzlich leer.)timeEs werden 4 Bytes gelesen. (Byte 1 = Stunde, Byte 2 = Minute, Byte 3 = Sekunde, Byte 4 = Hundertstelsekunde.)logicEs wird 1 Byte gelesen (Wert gleich0entsprichtfalse, Wert gleich1entsprichttrue).
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