// Hello World Server// bind tcp://*:5555// gcc -g hwserver.c -o hwserver -lzmq #include#include #include #include int main(int argc, char* argv[]){ void* context = zmq_init(1); //与客户端通信的socket void* responder = zmq_socket(context, ZMQ_REP); zmq_bind(responder, "tcp://*:5555"); while(1) { char buffer[10] = {0}; zmq_recv(responder, buffer, 10, 0); printf("Recvived %s\n", buffer); sleep(1); //Do some work. zmq_send(responder, "World", 5, 0); } //zmq_close(responder); //zmq_term(context); return 0;}
// Hello World Client//gcc -g hwclient.c -o hwclient -lzmq#include#include #include #include int main(int argc, char* argv[]){ printf ("Connecting to hello world server...\n"); void *context = zmq_ctx_new (); void *requester = zmq_socket (context, ZMQ_REQ); zmq_connect (requester, "tcp://localhost:5555"); int request_nbr; for (request_nbr = 0; request_nbr != 10; request_nbr++) { char buffer [10]; printf ("Sending Hello %d...\n", request_nbr); zmq_send (requester, "Hello", 5, 0); zmq_recv (requester, buffer, 10, 0); printf ("Received World %d\n", request_nbr); } zmq_close (requester); zmq_ctx_destroy (context); return 0;}
request-reply模式