[zeromq-dev] Using ZMQ_STREAM as tcp client. Why am I receiving extra info?

Brian Wagener Android at forceconstant.com
Wed Nov 29 21:00:13 CET 2017


I have an application that uses zeromq for various things and want to also
use it as a tcp client for other external connections. Currently if the
external tcp server sends data, the client receives 5 byte id, 0 bytes, 5
bytes, and then actual message. How do I get zeromq not to send this stuff.



#include <iostream>

#include <string>

#include <zmq.h>

#include <cstring>

#include <assert.h>

#include <chrono>

#include <thread>





int main()

{

void *mpSocketContext = zmq_ctx_new();



/* Create ZMQ_STREAM socket */

void *mpSerialSocket = zmq_socket(mpSocketContext, ZMQ_STREAM);

void *mpSocket = mpSerialSocket;

bool aeBlocking = true;



std::string asAddress = "127.0.0.1:1236";

asAddress = "tcp://" + asAddress;



std::cout << "tcSerialServerPort::tcSerialServerPort: connecting to " <<
asAddress << std::endl;



int rc = zmq_connect(mpSerialSocket, asAddress.c_str());

if (rc != 0)

std::cout << "ZMQ ERROR: zmq_connect " << zmq_strerror(zmq_errno()) <<
std::endl;



uint8_t id [256];

size_t id_size = 256;

rc = zmq_getsockopt (mpSerialSocket, ZMQ_IDENTITY, id, &id_size);

assert(rc == 0);



while(true)

{

zmq_msg_t msg;

zmq_msg_init(&msg);

size_t lnBytesReceived = 0;

std::string lsStr;



lnBytesReceived = zmq_recvmsg(mpSocket, &msg, aeBlocking ? 0 :
ZMQ_DONTWAIT);



lsStr = std::string(static_cast<const char*>(zmq_msg_data(&msg)),

zmq_msg_size(&msg));





std::cout << "Received Bytes=" << lsStr.size() << " Data=" << lsStr <<
std::endl;



zmq_msg_close(&msg);



std::this_thread::sleep_for(std::chrono::seconds(1));

}





zmq_close(mpSerialSocket);

zmq_ctx_destroy(mpSocketContext);



return 0;

}





Brian Wagener

Lockheed Martin Undersea Systems

Software Engineer Stf

West Palm Beach, FL
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20171129/c90b1500/attachment.htm>


More information about the zeromq-dev mailing list