zeromqの使用(windows)

3787 ワード

注:Windowsプラットフォームの使用について
1.公式サイトのダウンロードソース:http://zeromq.org/intro:get-the-software
stable release is v 4をダウンロードします.1.6
zeromq的使用(windows)_第1张图片
 2.vs 2013はlibライブラリとdllのコンパイルを行う(libzmqエンジニアリングのみコンパイル可能)
パスが見つかりました:zeromq-4.1.6buildsmsvcvs 2013、vs 2013でlibzmqを開きます.sln.
zeromq的使用(windows)_第2张图片
libzmqを直接コンパイルすると、エラーが発生します.
LINK : fatal error LNK1104: cannot open file 'libsodium.lib'
libsodiumをリンクしないように設定します.
zeromq的使用(windows)_第3张图片
コンパイルに成功しました.コンパイルされたファイル(win 32 Releasewei)はzeromq-4.1.6binWin 32Releasev 120dynamicの下にあります.
zeromq的使用(windows)_第4张图片
3.実戦
libファイルとヘッダファイルzmq.h、zmq_utils.h導入工事
(1)発行
// pub.cpp : Defines the entry point for the console application.
//

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

int main() {
	void *context = zmq_ctx_new();
	void *publisher = zmq_socket(context, ZMQ_PUB);
	zmq_bind(publisher, "tcp://*:9998");
	char sendbuf[64] = {0};
	int cnt = 0;
	while (cnt < 1000)
	{
		sprintf_s(sendbuf, "msg  ----%d", cnt++);
		std::cout << "msg  ----" << cnt << std::endl;
		zmq_send(publisher, sendbuf, strlen(sendbuf), 0);
		Sleep(1000);
		
	}
	std::cout << "publisher over!" << std::endl;
	zmq_close(publisher);
	zmq_ctx_destroy(context);
	getchar();
	return 0;
}

(2)購読
// sub.cpp : Defines the entry point for the console application.
//

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

int main(void)
{
	void *context = zmq_ctx_new();
	void *subscriber = zmq_socket(context, ZMQ_SUB);

	zmq_setsockopt(subscriber, ZMQ_SUBSCRIBE, "", 0);
	zmq_connect(subscriber, "tcp://127.0.0.1:9998");
	while(1)
	{
		char recvbuf[64] = {0};
		int ret = zmq_recv(subscriber, recvbuf, 64, ZMQ_DONTWAIT);//ZMQ_DONTWAIT  zmq_recv      
		if (ret == -1)
		{
			if (errno == EAGAIN) continue;
			else
			{
				std::cout << "    "<< std::endl;
				break;
			}
		}
			std::cout << recvbuf << std::endl;
	}
	zmq_close(subscriber);
	zmq_ctx_destroy(context);
	getchar();
	return 0;
}

zeromq的使用(windows)_第5张图片
 
 
API:https://www.cnblogs.com/fengbohello/p/4230135.html