Hi, everyone
My problem is as the following:
typedef struct tag_WData
{
string Time;
string Symbol;
} WData;
On the PUB side. I can get WData.Time.
void OnData(WData wd)
{
// PUB Socket send ticker message to subscriber
int msgSize = sizeof(WData);
zmq::message_t message(msgSize);
memcpy ((void *) message.data(), &wd, msgSize);
publisher.send(message);
}
However, on the SUB side, it's very wired that I can NOT get WData.Time, but
WData.Symbol is correct.
int main (int argc, char *argv[])
{
zmq::context_t context (1); // only 1 io_threads
zmq::socket_t subscriber (context, ZMQ_SUB);
subscriber.connect("tcp://localhost:5556");
subscriber.setsockopt(ZMQ_SUBSCRIBE, NULL, 0);
WData *msg;
while(true){
zmq::message_t message(sizeof(WData));
subscriber.recv(&message);
msg = (WData *) message.data();
// it's ERROR here. error message: Bad ptr
cout << msg->Time << endl;
}
return 0;
}
Why?
Thanks!
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev