SocketTlsReadAvailable

Читает все доступные данные из защищенного TLS-соединения.

int  SocketTlsReadAvailable(
   int           socket,               // сокет
   uchar&        buffer[],             // буфер для чтения данных из сокета
   const uint    buffer_maxlen         // количество байт, которые нужно прочитать
   );

Параметры

socket

[in]  Хэндл сокета, возвращаемый функцией SocketCreate. При передаче неверного хэндла в _LastError записывается ошибка 5270 (ERR_NETSOCKET_INVALIDHANDLE).

buffer

[out]  Ссылка на массив типа uchar, в который будут прочитаны данные. Размер динамического массива увеличивается на количество прочитанных байт. Размер массива не может превышать INT_MAX (2147483647).

buffer_maxlen

[in]  Количество байт, которые необходимо прочитать в массив buffer[]. Данные, которые не поместятся в массив, останутся в сокете. Их можно будет получить следующим вызовом SocketTlsReadAvailable или SocketTlsRead. Значение buffer_maxlen не может превыщать INT_MAX (2147483647).

Возвращаемое значение

В случае успеха возвращает количество прочитанных байт, в случае ошибки возвращает -1.

Примечание

Если при выполнении этой функции на системном сокете произойдет ошибка, соединение, установленное через SocketConnect, будет разорвано.

При ошибке чтения данных в _LastError записывается ошибка 5273 (ERR_NETSOCKET_IO_ERROR).

Функцию можно вызывать только из экспертов и скриптов, так как они работают в собственном потоке выполнения. При вызове из индикатора GetLastError() вернет ошибку 4014 – "Системная функция не разрешена для вызова".

Смотри также

SocketTimeouts, MathSwap