UDP - как раз блочный. Но, НЯП , *стандарта* на MODBUS/UDP нет. А в TCP данные, разумеется, приходят блоками, но ни влиять на упаковку потока в блоки,
ни определить границы блоков, вообще говоря, нельзя. То есть можно попытаться, но работать это будет, только если повезёт.
Удивляюсь, зачем вообще оставили режим RTU в MODBUS/TCP . Оставили бы только ASCII - сразу бы столько геморроя убрали...