Метод .redir
| Назначение: | Для выбранного в данный момент сокета (выбор выполняется через sock.num) перенаправляет принимаемые (RX) данные в буфер TX того же сокета, другого сокета или другого объекта, поддерживающего совместимые буферы. |
| Синтаксис: | sock.redir(redir as pl_redir) as pl_redir |
| Возвращает: | Возвращает 0 - PL_REDIR_NONE, если перенаправление не удалось, или то же значение, которое было передано в аргументе redir. |
| См. также: | --- |
| Параметр | Описание |
| redir | Зависит от платформы. Список констант pl_redir приведён в спецификациях платформ. |
Подробности
Перенаправление данных (его иногда называют «замыканием буферов») позволяет организовать эффективный обмен данными между портами, сокетами и т. д. там, где данные не нужно изменять или разбирать, а важно получить максимально возможную пропускную способность.
Аргумент redir и возвращаемое методом значение имеют тип "enum pl_redir". Перечисление pl_redir задаёт набор межобъектных констант платформы, включающий все возможные перенаправления для этой платформы. Значение redir 0 - PL_REDIR_NONE отменяет перенаправление. Когда для сокета включено перенаправление, событие on_sock_data_arrival для этого порта не генерируется.
После перенаправления буфера RX некоторые связанные с ним свойства и методы фактически будут возвращать данные буфера TX, в который перенаправлен буфер RX:
- sock.rxbuffsize будет возвращать размер буфера TX
- sock.rxclear будет очищать буфер TX
- sock.rxlen будет показывать объём данных в буфере TX
Не включайте перенаправление буферов для сокета, использующего шифрование TLS.