我正在尝试通过boost asio向客户端发送kinect深度图(不带序列化),是尝试异步还是同步更好(目前我的方法是同步):
像这样打碎..
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;发布于 2012-11-04 19:34:23
sizeof(pDepthMap)只是指针的大小,但是你真正想要的是发送一些结构,而不是一个指向它的指针。
请看一下ASIO Serialization example,看看如何使用Boost.Serialization来完成它。如果您不想使用Boost.Serialization,您可以通过自己的方式以某种专有的方式“序列化”您的结构。
https://stackoverflow.com/questions/13181528
复制相似问题