Есть своя программа (=есть её исходники) для обнаружения и трекинга объектов на видео. Пока всё один большой комбайн, хочу прикрутить к ней возможность цепляться по tcp/ip клиентом для разных шалостей - например, запросить позицию определённого объекта или отправить команду остановить слежение за определённым объектом. Пока что пихаю всё struct с __attribute__((packed)) и пересылаю её. Но пока команд немного, и данных вроде как тоже - позиция, таймстемп, ещё пара служебных целочисленных значений.
Руки уже зачесались пересылать также и разные другие данные, картинку объекта, например. Другими словами, пересылать бинарные данные неизвестного размера. Думаю добавить поле datasize и data и пересылать блоб. А как грамотные программисты такое реализуют? С json-ами связываться не хочется, хочется KISS.