zeromq / cppzmq

Header-only C++ binding for libzmq
http://www.zeromq.org
MIT License
1.95k stars 757 forks source link

zeromq 4.3.5 and cppzmq 4.10.0 with BUILD_DRAFT_API doesn't work with ipc and tcp on Mac Ventuta #629

Closed IgorV-fp closed 7 months ago

IgorV-fp commented 7 months ago

when processes run, there is no messages come from sockets

tried to use

define MB_SOCK_PATH "ipc:///tmp/"

or

define MB_SOCK_PATH "tcp://127.0.0.1:"

process with rep socket code example: zmq::socket_t mRepsock( context, zmq::socket_type::rep );//ZMQ_REP ); mRepsock.set( zmq::sockopt::sndhwm, 0 ); mRepsock.set( zmq::sockopt::rcvhwm, 0 ); int rc = 0; rc = MBCommon::setSocketCurv( &mRepsock, cert ); EXPECT_EQ( rc, 0 ); mRepsock.set( zmq::sockopt::curve_server, true ); std::cout << "try to bind to " << MB_SOCK_PATH "37440" << std::endl; mRepsock.bind( MB_SOCK_PATH "37440" ); zmq::poller_t<> poller; poller.add( mRepsock, zmq::event_flags::pollin ); std::vector<zmq::poller_event<>> in_events( poller.size() ); const std::chrono::milliseconds timeout{aTimeout};

size_t nin = poller.wait_all( in_events, timeout );

// send responce code was here

process with req socket code example: zmq::socket_t mReqsock( context, zmq::socket_type::req ) ;//ZMQ_REQ ); mReqsock.set( zmq::sockopt::linger, 0 ); int rc = 0; rc = MBCommon::setSocketCurv( &mReqsock, client_cert, cert.public_key_txt() ); EXPECT_EQ( rc, 0 ); std::cout << "try to connect to " << MB_SOCK_PATH "37440" << std::endl; mReqsock.connect( MB_SOCK_PATH "37440" ); std::string endp = mReqsock.get( zmq::sockopt::last_endpoint ); std::cout << "connected to " << endp << std::endl; std::this_thread::sleep_for( std::chrono::milliseconds( 1000 )); // send message code was here

// wait for responce int aTimeout = -1;

zmq::poller_t<> poller;
poller.add( mReqsock, zmq::event_flags::pollin );

// poller.add( mRepsock, zmq::event_flags::pollin ); std::vector<zmq::poller_event<>> in_events( poller.size() ); const std::chrono::milliseconds timeout{aTimeout};

size_t nin = poller.wait_all( in_events, timeout );
IgorV-fp commented 7 months ago

Found the issue. The problem was in curve keypairs generation