51 lines
1.3 KiB
C
51 lines
1.3 KiB
C
|
#include <zmq.h>
|
||
|
#include <stdio.h>
|
||
|
#include <unistd.h>
|
||
|
#include <string.h>
|
||
|
#include <assert.h>
|
||
|
|
||
|
void *context;
|
||
|
void *responder;
|
||
|
|
||
|
int SendData(const void *pvData, unsigned int uiDataLen)
|
||
|
{
|
||
|
return zmq_send (responder, pvData, uiDataLen, 0);
|
||
|
}
|
||
|
int RecvData(void *pvData, unsigned int uiDataLen)
|
||
|
{
|
||
|
return zmq_recv (responder, pvData, uiDataLen, 0);
|
||
|
}
|
||
|
|
||
|
int main (void)
|
||
|
{
|
||
|
// Socket to talk to clients
|
||
|
context = zmq_ctx_new ();
|
||
|
responder = zmq_socket (context, ZMQ_REP);
|
||
|
unsigned int uiTimeout = 5 * 1000;
|
||
|
int rst = 0;
|
||
|
|
||
|
zmq_setsockopt(responder, ZMQ_RCVTIMEO, &uiTimeout, sizeof(uiTimeout));
|
||
|
zmq_setsockopt(responder, ZMQ_SNDTIMEO, &uiTimeout, sizeof(uiTimeout));
|
||
|
int rc = zmq_bind (responder, "tcp://*:5555");
|
||
|
assert (rc == 0);
|
||
|
|
||
|
while (1) {
|
||
|
char buffer [10];
|
||
|
// zmq_recv (responder, buffer, sizeof buffer, 0);
|
||
|
printf("start\n");
|
||
|
rst = RecvData(buffer, sizeof buffer);
|
||
|
printf("end\n");
|
||
|
if(rst <= 0 )
|
||
|
{
|
||
|
printf("recv error: %d\n", rst);
|
||
|
continue;
|
||
|
}
|
||
|
printf ("Received %s\n", buffer);
|
||
|
sleep (3); // Do some 'work'
|
||
|
// zmq_send (responder, buffer, sizeof buffer, 0);
|
||
|
SendData(buffer, sizeof buffer);
|
||
|
// sleep(4);
|
||
|
}
|
||
|
return 0;
|
||
|
}
|