现在的位置: 首页 > 综合 > 正文

ZeroMQ 之 Rep/Req

2018年10月07日 ⁄ 综合 ⁄ 共 1337字 ⁄ 字号 评论关闭

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);
}

 

【上篇】
【下篇】

抱歉!评论已关闭.