VC 下使用zeroMQ

1. VC++环境 zeromq编译

1a.下载libzmq 4.2.2 版本

https://github.com/zeromq/libzmq

 

1b.打开

libzmq-4.2.2\builds\msvc\vs2015\libzmq.sln

编译

libzmq-4.2.2\bin\Win32\Debug\v140\dynamic 生成 libzmq.dll libzmq.lib

 

 

1c 测试代码

 


#include "stdafx.h"
#include "zmq.h"

#pragma comment(lib,"libzmq-v140-mt-gd-4_2_2.lib")







void zmqServer()
{
	unsigned char buf[128];
	const char *content = "world";
	void *ctx = zmq_ctx_new();

	void *sc = zmq_socket(ctx, ZMQ_REP);
	int rc = zmq_bind(sc, "tcp://127.0.0.1:5560");
	if (rc != 0)
	{
		printf("error bind socket\n");
		return;

	}
	printf("server start\n");

	for (;;)
	{
		rc = zmq_recv(sc, buf, 32, 0);
		if (rc > 0)
		{
			buf[rc] = 0;
			printf("recv: %s\n", buf);
			zmq_send(sc, content, strlen(content), 0);
		}
	}

	rc = zmq_close(sc);
	rc = zmq_ctx_term(ctx);
	//return ;
}

void zmqClient()
{
	unsigned char buf[128];
	const char *content = "hello";

	void *ctx = zmq_ctx_new();
	void *sc = zmq_socket(ctx, ZMQ_REQ);
	int rc = zmq_connect(sc, "tcp://127.0.0.1:5560");
	for (int i = 0; i < 10; i++)
	{
		printf("send %d %s\n", i, content);
		rc = zmq_send(sc, content, strlen(content), ZMQ_DONTWAIT);
		rc = zmq_recv(sc, buf, 32, 0);
		if (rc > 0)
		{
			buf[rc] = 0;
			printf("recv: %s \n", buf);
		}
		Sleep(1000);
	}

	rc = zmq_close(sc);
	rc = zmq_ctx_term(ctx);

}

DWORD WINAPI ThreadServer(LPVOID p)
{

	zmqServer();
	return 0;
}


DWORD WINAPI ThreadClient(LPVOID p)
{

	zmqClient();
	return 0;
}


int main(void)
{

//	zmqClient();
	//	zmqServer();
	DWORD serverId, clientId;
	CreateThread(NULL, 1024, ThreadServer,NULL,0,&serverId);
	CreateThread(NULL, 1024, ThreadClient, NULL, 0, &clientId);

	getchar();
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值