repServer端:
#include <iostream> #include <tchar.h> #include <zmq.h> using namespace std; #pragma comment(lib,"libzmq.lib") void main(int argc,TCHAR*argv[]) { // // Step1 Init // void *ctx; ctx = zmq_init(1); void *s; s = zmq_socket(ctx,ZMQ_REP); int rc; rc = zmq_bind(s,"tcp://127.0.0.1:6000"); zmq_msg_t msg; while(1) { // // Step2 Recv Data // zmq_msg_init(&msg); zmq_recv(s,&msg,0); char *re_string = (char*)zmq_msg_data(&msg); cout<<"Server recv data : "<<re_string<<endl; zmq_msg_close(&msg); // // Step3 Send Data // char *sd_string = "server send"; zmq_msg_init_size(&msg,strlen(sd_string)+1); memcpy(zmq_msg_data(&msg),sd_string,strlen(sd_string)+1); zmq_send(s,&msg,0); zmq_msg_close(&msg); } // // Step4 Term // zmq_close(s); zmq_term(ctx); }
reqClient端:
#include <iostream> #include <tchar.h> #include <zmq.h> using namespace std; #pragma comment(lib,"libzmq.lib") void main(int argc,TCHAR*argv[]) { // // Step1 Init // void *ctx; ctx = zmq_init(1); void *s; s = zmq_socket(ctx,ZMQ_REQ); int rc; rc = zmq_connect(s,"tcp://127.0.0.1:6000"); zmq_msg_t msg; // // Step2 Send Data // char *sd_string = "client send"; zmq_msg_init_size(&msg,strlen(sd_string)+1); memcpy(zmq_msg_data(&msg),sd_string,strlen(sd_string)+1); zmq_send(s,&msg,0); zmq_msg_close(&msg); // // Step3 Recv Data // zmq_msg_init(&msg); zmq_recv(s,&msg,0); char *re_string = (char*)zmq_msg_data(&msg); cout<<"Client recv data : "<<re_string<<endl; zmq_msg_close(&msg); // // Step4 Term // zmq_close(s); zmq_term(ctx); }