前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开源消息队列:NetMQ

开源消息队列:NetMQ

作者头像
张善友
发布2018-01-29 14:58:15
2.6K0
发布2018-01-29 14:58:15
举报
文章被收录于专栏:张善友的专栏张善友的专栏

NetMQ 是  ZeroMQ的C#移植版本。

ZeroMQ是一个轻量级的消息内核,它是对标准socket接口的扩展。它提供了一种异步消息队列,多消息模式,消息过滤(订阅),对多种传输协议的无缝访问。

NetMQ 也是一个社区开源项目,网站在Github上 https://github.com/zeromq/netmq, 可以通过Nuget包获取http://nuget.org/packages/NetMQ

Ø  是一个并发框架. Ø  支持通过进程内(Inproc),进程间(IPC), TCP, 和多播来传递消息. Ø  支持多对多的列表、发布/订阅、管道和接收/回复连接. Ø  支持异步.

C# 客户端服务端

Server.cs

代码语言:javascript
复制
   public static void Main (string[] args)
      {
            using (NetMQContext context = NetMQContext.Create())
            {
                Server(context);
            }
       }

        static void Server(NetMQContext context)
        {
            using (NetMQSocket serverSocket = context.CreateResponseSocket())
            {
                serverSocket.Bind("tcp://*:5555");

                while (true)
                {
                    string message = serverSocket.ReceiveString();

                    Console.WriteLine("Receive message {0}", message);

                    serverSocket.Send("World");

                    if (message == "exit")
                    {
                        break;
                    }
                }
            }
        }

Client.cs

代码语言:javascript
复制
    public static void Main (string[] args)
        {
            using (NetMQContext context = NetMQContext.Create())
            {
                Client(context);
            }
      
       }

        static void Client(NetMQContext context)
        {
            using (NetMQSocket clientSocket = context.CreateRequestSocket())
            {
                clientSocket.Connect("tcp://127.0.0.1:5555");

                while (true)
                {
                    Console.WriteLine("Please enter your message:");
                    string message = Console.ReadLine();
                    clientSocket.Send(message);

                    string answer = clientSocket.ReceiveString();

                    Console.WriteLine("Answer from server: {0}", answer);

                    if (message == "exit")
                    {
                        break;
                    }
                }
            }
        }

NetMQ也支持Mono,下面是在Mono上的运行:

ZeroMQ研究与应用分析

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-12-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档