PracticeDev/study_clang/zmq/reqrep/client.c

49 lines
1.4 KiB
C
Raw Permalink Normal View History

2022-12-20 17:31:11 +08:00
#include <zmq.h>
#include <string.h>
#include <stdio.h>
#include <unistd.h>
int main (void)
{
int rst;
printf ("Connecting to hello world server…\n");
void *context = zmq_ctx_new ();
void *requester = zmq_socket (context, ZMQ_REQ);
unsigned int uiTimeout = 3 * 1000;
zmq_setsockopt(requester, ZMQ_RCVTIMEO, &uiTimeout, sizeof(uiTimeout));
zmq_setsockopt(requester, ZMQ_SNDTIMEO, &uiTimeout, sizeof(uiTimeout));
zmq_connect (requester, "tcp://localhost:5555");
int request_nbr;
for (request_nbr = 0; request_nbr != 100; request_nbr++) {
char buffer [10];
sprintf(buffer, "Hello %d", request_nbr);
printf ("-----------------%d--------------\n",request_nbr);
printf ("Sending %s…, rst:", buffer);
rst = zmq_send (requester, buffer, sizeof(buffer), 0);
if(rst < 0)
{
printf("Send error: %s\n", zmq_strerror(zmq_errno()));
// sleep(1);
// continue;
}
else
printf ("...ok\n");
rst = zmq_recv (requester, buffer, 10, 0);
if(rst < 0)
{
printf("recv error: %s\n", zmq_strerror(zmq_errno()));
// sleep(1);
// continue;
}
else
printf ("Received World %d\n", request_nbr);
// sleep(1);
}
zmq_close (requester);
zmq_ctx_destroy (context);
return 0;
}