- void* mrc; // msg router context
- long long total = 0;
- rmr_mbuf_t* msg = NULL; // message received
- int stat_freq = 10; // write stats after reciving this many messages
- int i;
- char* listen_port;
- long long count = 0;
- long long bad = 0;
- long long empty = 0;
-
- if( argc > 1 ) {
- listen_port = argv[1];
- }
- if( argc > 2 ) {
- stat_freq = atoi( argv[2] );
- }
- fprintf( stderr, "<DEMO> listening on port: %s\n", listen_port );
- fprintf( stderr, "<DEMO> stats will be reported every %d messages\n", stat_freq );
-
- mrc = rmr_init( listen_port, RMR_MAX_RCV_BYTES, RMRFL_NONE ); // start your engines!
- if( mrc == NULL ) {
- fprintf( stderr, "<DEMO> ABORT: unable to initialise RMr\n" );
- exit( 1 );
- }
-
- while( ! rmr_ready( mrc ) ) { // wait for RMr to load a route table
- fprintf( stderr, "<DEMO> waiting for ready\n" );
- sleep( 3 );
- }
- fprintf( stderr, "<DEMO> rmr now shows ready\n" );
-
- while( 1 ) { // forever; ctl-c, kill -15, etc to end
- msg = rmr_rcv_msg( mrc, msg ); // block until one arrives
-
- if( msg ) {
- if( msg->state == RMR_OK ) {
- count++; // messages received for stats output
- } else {
- bad++;
- }
- } else {
- empty++;
- }
-
- if( (count % stat_freq) == 0 ) {
- fprintf( stderr, "<DEMO> total msg received: %lld errors: %lld empty: %lld\n", count, bad, empty );
- }
+ void* mrc; // msg router context
+ long long total = 0;
+ rmr_mbuf_t* msg = NULL; // message received
+ int stat_freq = 10; // write stats after reciving this many messages
+ int i;
+ char* listen_port = "4560"; // default to what has become the standard RMR port
+ long long count = 0;
+ long long bad = 0;
+ long long empty = 0;
+
+ if( argc > 1 ) {
+ listen_port = argv[1];
+ }
+ if( argc > 2 ) {
+ stat_freq = atoi( argv[2] );
+ }
+ fprintf( stderr, "<DEMO> listening on port: %s\n", listen_port );
+ fprintf( stderr, "<DEMO> stats will be reported every %d messages\n", stat_freq );