// Set simple random printable identity on socket // static void s_set_id (zmq::socket_t & socket) { char identity [10]; sprintf (identity, "%04X-%04X", within (0x10000), within (0x10000)); socket.setsockopt(ZMQ_IDENTITY, identity, strlen (identity)); }
void OTSocket::Listen(const OTString &strBind) { if (NULL != m_pSocket) delete m_pSocket; // m_pSocket = NULL; m_pSocket = new zmq::socket_t(*m_pContext, ZMQ_REP); // RESPONSE socket (Request / Response.) OT_ASSERT_MSG(NULL != m_pSocket, "OTSocket::Listen: new zmq::socket(context, ZMQ_REP)"); OTString strTemp(strBind); // In case m_strBindPath is what was passed in. (It happens.) m_strBindPath.Set(strTemp); // In case we have to close/reopen the socket to finish a send/receive. // ------------------------ // Configure socket to not wait at close time // const int linger = 0; // close immediately m_pSocket->setsockopt (ZMQ_LINGER, &linger, sizeof (linger)); /* int zmq_setsockopt (void *socket, int option_name, const void *option_value, size_t option_len); Caution: All options, with the exception of ZMQ_SUBSCRIBE, ZMQ_UNSUBSCRIBE and ZMQ_LINGER, only take effect for subsequent socket bind/connects. */ // ------------------------ m_pSocket->bind(strBind.Get()); }
// Fix #521 inline std::string s_set_id(zmq::socket_t & socket, intptr_t id) { std::stringstream ss; ss << std::hex << std::uppercase << std::setw(4) << std::setfill('0') << id; socket.setsockopt(ZMQ_IDENTITY, ss.str().c_str(), ss.str().length()); return ss.str(); }
// Set simple random printable identity on socket // inline std::string s_set_id (zmq::socket_t & socket) { std::stringstream ss; ss << std::hex << std::uppercase << std::setw(4) << std::setfill('0') << within (0x10000) << "-" << std::setw(4) << std::setfill('0') << within (0x10000); socket.setsockopt(ZMQ_IDENTITY, ss.str().c_str(), ss.str().length()); return ss.str(); }
void ServerInterface::ConnectToStateServer(zmq::socket_t& stateSocket) const { std::cout << "Connecting to state server " << m_stateServer << std::endl; stateSocket.connect(m_stateServer.c_str()); stateSocket.setsockopt(ZMQ_SUBSCRIBE, m_matchToken.c_str(), m_matchToken.size()); }
void setSocketID(const std::string& id, zmq::socket_t & socket) { socket.setsockopt(ZMQ_IDENTITY, id.c_str(), id.length()); }