Hi, Ric

Right, string is std::string.
Why Symbol(also std::string) has the correct string and Time NOT?

I'm debugging now, WData.Time is ""(a empty string).

On Aug 14, 2013, at 8:54 PM, [email protected] wrote:

> Is string here a std::string?  If so you cannot do this as std::string uses 
> more memory internally,
> 
> You'll need either a struct that uses just data arrays like:
> 
> 
> typedef struct tag_WData
> {
> charTime[100];
> char Symbol[100];
> } WData;
> 
> Or use some serialisation mechanism such as protocol buffers.
> 
> Ric.
> 
> 
> 
> <graycol.gif>liuchuanbo---14/08/2013 01:45:26 PM---Hi, everyone My problem is 
> as the following:
> 
> From: [email protected]
> To:   [email protected], 
> Date: 14/08/2013 01:45 PM
> Subject:      [zeromq-dev] PUB sent, but SUB can not receive.
> Sent by:      [email protected]
> 
> 
> 
> 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
> 
> 
> ===========================================================
> The information in this email is confidential, and is intended solely for the 
> addressee(s). 
> Access to this email by anyone else is unauthorized and therefore prohibited. 
>  If you are 
> not the intended recipient you are notified that disclosing, copying, 
> distributing or taking 
> any action in reliance on the contents of this information is strictly 
> prohibited and may be unlawful.
> ===========================================================
> 
> _______________________________________________
> zeromq-dev mailing list
> [email protected]
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev

_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to