У меня есть сценарий использования для отправки объекта OpenCV Mat
нескольким получателям в многоадресной сети. Я использую библиотеку C ++ boost
для отправки и получения данных многоадресной сети.
Мое понимание
Объект
Mat
сериализуется в буфер boost
и отправляется сетевым получателям. Получатели получают и десериализуют буфер для создания объекта Mat
.
Реализация, которую я пробовал
Мой Mat
объект для отправки - image
.
const char * px = reinterpret_cast<const char*>(image.data);
socket_.async_send_to(
boost::asio::buffer(px, sizeof(px)), endpoint_,
[this](boost::system::error_code ec, std::size_t /*length*/) {
if (!ec && message_count_ < max_message_count)
do_timeout();
});
Вопрос 1
Как проверить, достигли ли полные данные получателя?
Вопрос 2
Как восстановить объект Mat
на приемнике?
Вопрос 3
Есть ли лучший способ создать буфер изображений, который передает объекты OpenCV Mat
в многоадресной сети? (Я ценю использование библиотеки boost
, поскольку она используется в нескольких местах)