c++ - 在多播网络中发送和接收 OpenCV Mat 对象
问题描述
我有一个用例将 OpenCVMat
对象发送到多播网络中的多个接收器。我使用 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
有没有更好的方法来构建Mat
在多播网络中传输 OpenCV 对象的图像缓冲区?(我很欣赏boost
图书馆的使用,因为它在多个地方使用)
解决方案
推荐阅读
- rust - Why use empty Result in return?
- r - 如何观察两个事件中的任何一个 - 闪亮
- plsql - 根据先前的事件识别事件日期时间
- bash - 设置 PROMPT_DIRTRIM 时更改为省略号
- c++ - Proper try-catch design
- python - django 中的自动迁移处理
- c++ - 我不明白如何在 C++ 中使用 size_t
- c++ - 如何使用 Qt Creator 调试 C++ 项目?
- android - 为什么 IO Dispatchers 在 Kotlin corotines 中创建超过 64 个线程?
- c# - 当客户端和服务器都使用 Unity 镜像时如何处理?