Как отправить карту глубины OpenNI через boost asio клиенту?

я пытаюсь отправить карту глубины kinect клиенту через boost asio (без сериализации)
лучше попробовать асинхронизировать или синхронизировать (сейчас мой подход ist synch):

что-то вроде этого ..

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;

1

Решение

sizeof(pDepthMap) это просто размер указателя, но на самом деле вы хотите отправить некоторую структуру, а не указатель на нее.

Пожалуйста, посмотрите на ASIO Сериализация пример чтобы увидеть, как это можно сделать с помощью Boost.Serialization.
Если вы не хотите использовать Boost.Serialization, вы можете «сериализовать» свою структуру каким-либо собственным способом.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]