Метод .peekdata
| Назначение: | Для выбранного сокета (выбор выполняется через sock.num) возвращает строку с «предварительным просмотром» данных из буфера RX. Данные из буфера НЕ удаляются. |
| Синтаксис: | ser.peekdata(maxinplen as word) as string |
| Возвращает: | Строка с данными из буфера RX |
| См. также: | sock.getdata |
| Параметр | Описание |
| maxinplen | Максимальный объём данных для просмотра (word). |
Подробности
Для TCP (sock.protocol = 1 - PL_SOCK_PROTOCOL_UDP) длина возвращаемых данных ограничена наименьшим из трёх значений: объёмом данных в самом буфере RX, ёмкостью «принимающей» строковой переменной и пределом, заданным аргументом maxinplen. Строковые переменные вмещают до 255 байт данных, поэтому метод позволяет просмотреть не более 255 «следующих» байт из буфера RX.
Для UDP (sock.protocol = 0 - PL_SOCK_PROTOCOL_UDP) действуют дополнительные ограничения. «Текущая» UDP-датаграмма всегда автоматически удаляется при выходе из события on_sock_data_arrival. Это значит, что при выходе из события on_sock_data_arrival датаграмма будет «потеряна» из буфера, даже если программа использовала только sock.peekdata. Кроме того, объём данных, возвращаемых sock.peekdata, ограничен «следующей» UDP-датаграммой, ожидающей в буфере RX.