如何通过Boost ASIO将OpenNi Depthmap发送给客户端

How to send an OpenNI depthmap via boost asio to client?

本文关键字:客户端 Depthmap OpenNi 何通过 Boost ASIO      更新时间:2023-10-16

im试图通过boost asio(无序列化)向客户端发送kinect Depthmap尝试Asynch或Synch更好(现在我的方法同步):

smthg这样..

server:
//depthmap
const XnDepthPixel* pDepthMap = depth.GetDepthMap();
boost::asio::write (socket, boost::asio::buffer (pDepthMap, sizeof(pDepthMap))); //sizeof isnt right..
client:
XnDepthPixel* depth;
socket.read_some( boost::asio::buffer (&depth, sizeof(XnDepthPixel)* ?? )); //send sizeof(pDepthMap) before..

编辑:Xndepthpixel的定义(也来自Openni):

/** Defines the depth values type (16-bit values). **/
typedef XnUInt16 XnDepthPixel

和xnuint16:

/** 16-bit unsigned integer. */ 
typedef unsigned short      XnUInt16;

sizeof(pDepthMap)只是指针的大小,但是您实际想要的是发送一些结构,而不是指向它的指针。

请看一下ASIO serialization 示例,以查看如何使用Boost.Serialization完成。如果您不想使用boost。序列化,则可以以某种专有方式"序列化"您的结构。