我试图通过boost asio向客户端发送kinect深度图(无序列化) 尝试异步或同步更好(现在我的方法是同步):
像这样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;
答案 0 :(得分:0)
sizeof(pDepthMap)
只是指针的大小,但你真正想要的是发送一些结构,而不是指向它的指针。
请查看ASIO 序列化 example,看看如何使用Boost.Serialization完成。 如果您不想使用Boost.Serialization,您可以通过自己的方式以某种专有方式“序列化”您的结构。