Обработка переполнения буферов

Обработка переполнения буфера RX

Событие on_sock_overrun генерируется при переполнении буфера RX. Это значит, что данные поступали в буфер RX быстрее, чем вы их обрабатывали, и часть данных потеряна.

Событие генерируется всего один раз, сколько бы данных ни было потеряно. Новое событие будет сгенерировано только после выхода из обработчика предыдущего.

Обычно при использовании TCP переполнение данных не происходит. Дело в том, что TCP достаточно умён, чтобы регулировать поток данных между отправителем и получателем и таким образом избегать переполнения. В UDP механизма «управления потоком» нет, поэтому переполнение буфера RX может происходить и будет происходить.

Как правило, пользователю вашей системы нужно знать, что произошло переполнение. Например, в этом случае можно мигать красным светодиодом.

sub on_ser_overrun
	pat.play("R-R-R-R")
end sub

Возможно ли переполнение буфера TX?

Переполнение буфера TX невозможно. Сокет не позволит перегрузить его буфер TX. Если вы попытаетесь добавить в буфер TX больше данных, чем позволяет свободное место, добавляемые данные будут усечены.

О том, как правильно передавать данные, см. Отправка данных.

Исходный материал Tibbo обновлён 11 августа 2022Оригинал на docs.tibbo.com · Сообщить об ошибке