Объект sock.

Значок объекта sock.

Это объект сокетов. Он позволяет поддерживать до 32 одновременных соединений UDP или TCP («обычных» или HTTP); фактическое число, поддерживаемое платформой, может быть меньше из-за ограничений памяти.

Каждое соединение очень часто называют «сокетом», этот термин используется и здесь. В других системах программирования сокеты обычно динамические: создаются и уничтожаются по мере необходимости. В TiOS вы получаете заранее заданное число уже созданных сокетов и просто пользуетесь ими. Сокет может простаивать, но он всё равно остаётся на месте.

У каждого сокета есть все привычные настройки, например номер порта назначения, протокол и т. д. Вместе с тем его возможности заметно шире обычных: многие дополнительные функции существенно сокращают объём кода, который нужно писать. Например, можно ограничить входящие соединения с вашим устройством, автоматически отфильтровывать определённые сообщения в потоке данных TCP и так далее.

Объект sock. также реализует функциональность веб-сервера (HTTP). Каждый сокет может нести «обычное» соединение для передачи данных или работать в режиме HTTP.

Внимание

Сейчас объект sock. может обращаться только к первым 65 534 байтам каждого HTML-файла, даже если фактический размер файла больше! Следите, чтобы все HTML-файлы в вашем проекте не превышали 65 534 байт. Это не следует путать с размером HTTP-вывода, который формирует файл: небольшой HTML-файл может породить очень большой вывод (за счёт динамических данных), и это нормально. Важно лишь, чтобы размер каждого HTML-файла в проекте не превышал 65 534 байт.

Объект sock. не следует путать с объектами, представляющими реальные сетевые интерфейсы, такими как объект net., представляющий интерфейс Ethernet. За саму связь по IP (TCP или UDP) отвечает объект sock., и неважно, через какой интерфейс эта связь осуществляется. Поэтому искать здесь свойство вроде «IP-адрес» не стоит: это атрибут конкретного сетевого интерфейса.

Ниже перечислены возможности каждого сокета объекта sock.:

  • Поддержка протоколов UDP, TCP и HTTP (это подрежим TCP).
  • Обширный набор свойств, определяющих, какие хосты могут подключаться к сокету, поддерживаются ли широковещательные сообщения, какие порты прослушивания связаны с сокетом и так далее.
  • Поддержка автоматической обработки внутриполосных команд - сообщений, которые передаются внутри потока данных TCP.
  • Подробная отчётность о состоянии сокета: поддерживается 30 различных состояний!
  • Полностью асинхронная работа с отдельными событиями «данные получены» и «данные отправлены».
  • Настраиваемые размеры буферов приёма (RX), передачи (TX) и других буферов для оптимального использования ОЗУ.
  • Автоматическое обнаружение переполнения буфера RX.
  • Функция замыкания буферов для быстрого обмена данными между объектом sock. и другими объектами (например, объектом ser.), поддерживающими стандартные буферы данных Tibbo BASIC/C.
Исходный материал Tibbo обновлён 12 сентября 2022Оригинал на docs.tibbo.com · Сообщить об ошибке