我有一个用例,可以将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
库,因为它已在多个地方使用)