[zeromq-dev] PUB sent, but SUB can not receive.

liuchuanbo at gmail.com liuchuanbo at gmail.com
Wed Aug 14 14:59:13 CEST 2013


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, Richard_Newton at waters.com 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:	liuchuanbo at gmail.com
> To:	zeromq-dev at lists.zeromq.org, 
> Date:	14/08/2013 01:45 PM
> Subject:	[zeromq-dev] PUB sent, but SUB can not receive.
> Sent by:	zeromq-dev-bounces at lists.zeromq.org
> 
> 
> 
> 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
> zeromq-dev at lists.zeromq.org
> 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
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20130814/23f73033/attachment.htm>


More information about the zeromq-dev mailing list