今度こそZeroMQ C++ bindingからpubする

http://d.hatena.ne.jp/shokai/20100811/1281492751C++ binding版
Cの関数のラッパーなので先にCで試してからだったら照らし合わせて(http://api.zeromq.org/zmq_cpp.html)理解が早かった


pub.cpp

#include <stdio.h>
#include <iostream>
#include <string>
#include <zmq.hpp>
#include <boost/format.hpp>
using namespace std;
using namespace boost;

int main(int argc, char **argv){
  cout << "pub start" << endl;
  zmq::context_t ctx(1);
  zmq::socket_t sock(ctx, ZMQ_PUB);
  sock.bind("tcp://127.0.0.1:5000");
  int count = 0;
  for(;;){
    try{
      string m = str(format("count %d") % count);
      cout << m << endl;
      zmq::message_t msg(m.size()+1);
      memcpy(msg.data(), m.c_str(), m.size()+1);
      sock.send(msg);
      count++;
      sleep(1);
    }
    catch (std::exception &e) {
      cerr << e.what() << endl;
    }
  }
}