[zeromq-dev] PUB sent, but SUB can not receive.
liuchuanbo at gmail.com
liuchuanbo at gmail.com
Wed Aug 14 14:45:03 CEST 2013
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!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20130814/25ae5741/attachment.htm>
More information about the zeromq-dev
mailing list