я пытаюсь отправить карту глубины 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;
sizeof(pDepthMap)
это просто размер указателя, но на самом деле вы хотите отправить некоторую структуру, а не указатель на нее.
Пожалуйста, посмотрите на ASIO Сериализация пример чтобы увидеть, как это можно сделать с помощью Boost.Serialization.
Если вы не хотите использовать Boost.Serialization, вы можете «сериализовать» свою структуру каким-либо собственным способом.
Других решений пока нет …