API определен в заголовочном файле sysroot-*-kos/include/kos/vec_socket.h из состава KasperskyOS SDK.
API позволяет отправлять несколько сетевых пакетов в одном IPC-сообщении, что ускоряет работу с сетью в KasperskyOS.
При использовании функций send() или recv() стандартной библиотеки языка C для каждого вызова этих функций создается отдельный IPC-вызов, что может замедлять работу с сетью. При отправке большого количества маленьких пакетов в силу архитектуры KasperskyOS возникает большое количество IPC-сообщений.
Интерфейс sendvec()/recvvec(), в отличие от функций readv()/writev() стандартной библиотеки языка C поддерживает не только отправку/получение нескольких пакетов на один сокет, но и отправку/получение нескольких пакетов на несколько сокетов.
Сведения о функциях API приведены в таблице ниже.
Использование API
Чтобы отправить пакеты, нужно инициализировать сетевой интерфейс; создать сокеты для соединения с сервером; создать и инициализировать структуру outvec, содержащую дескрипторы сокетов для соединения с сервером и указатели на пакеты для отправки; а затем вызвать функцию sendvec().
Чтобы принять пакеты, нужно создать сокеты, принимающие запросы на входящие соединения; создать и инициализировать структуру invec, содержащую дескрипторы сокетов для приема пакетов и указатели на буферы для приема пакетов; принять входящие запросы на соединения; а затем и вызвать функцию recvvec().
Структуры данных для API определены в заголовочном файле sysroot-*-kos/include/kos/vec_types.h из состава KasperskyOS SDK.
Сведения о функциях API
Функции vec_socket.h
Функция |
Сведения о функции |
|---|---|
|
Назначение Отправляет несколько пакетов на несколько сокетов в одном IPC-сообщении. Параметры
Возвращаемые значения В случае успеха возвращает количество успешно оправленных пакетов, иначе возвращает код ошибки. |
|
Назначение Принимает несколько пакетов из нескольких сокетов. Параметры
Возвращаемые значения В случае успеха возвращает количество успешно принятых пакетов, иначе возвращает код ошибки. |