SocketTlsReadAvailable

Lesen aller verfügbaren Daten einer sicheren TLS-Verbindung

int  SocketTlsReadAvailable(
   int           socket,               // Socket
   uchar&        buffer[],             // Puffer für die vom Socket gelesenen Daten
   const uint    buffer_maxlen         // Anzahl der zu lesenden Bytes
   );

Parameter

socket

[in]  Handle des Sockets, das von der Funktion SocketCreate erzeugt worden war. Wurde ein ungültiger Handle übergeben wird, wird der Fehler 5270 (ERR_NETSOCKET_INVALIDHANDLE) der Variablen _LastError zugewiesen.

buffer

[out]  Referenz eines Arrays vom Typ uchar, dem die Daten zugewiesen werden sollen. Die Größe des dynamischen Arrays wird auf die Anzahl der zu lesenden Bytes gesetzt. Die Arraygröße kann INT_MAX (2147483647) nicht überschreiten.

buffer_maxlen

[in]  Anzahl der Bytes, die dem Array buffer[] zugewiesen werden sollen. Daten, die nicht in das Array passen, verbleiben im Socket. Diese können beim nächsten Aufruf von SocketTlsReadAvailable oder SocketTlsRead abgerufen werden. buffer_maxlen kann nicht größer sein als INT_MAX (2147483647).

Rückgabewert

Bei einem Erfolg wird die Anzahl der gelesenen Bytes zurückgegeben. Im Fehlerfall wird -1 zurückgegeben.

Hinweis

Im Fehlerfall eines System-Sockets wird, beim Aufruf der Funktion, die Verbindung, die mit SocketConnect erstellt wurde, beendet.

Im Falle eines Fehlers beim Lesen wird der Fehler 5273 (ERR_NETSOCKET_IO_ERROR) der Variablen _LastError zugewiesen.

Die Funktion kann nur von Expert Advisors und Skripten aufgerufen werden, da sie in ihrem eigenen Ausführungsthread laufen. Wenn sie ein Indikator aufruft, wird von GetLastError() der Fehler 4014 – "Funktionsaufruf ist nicht erlaubt" ausgeworfen.

Siehe auch

SocketTimeouts, MathSwap