zoukankan      html  css  js  c++  java
  • 开源消息队列:NetMQ

    NetMQ 是  ZeroMQ的C#移植版本。

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

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

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

    C# 客户端服务端

    Server.cs

       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
        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上的运行:
    image
    ZeroMQ研究与应用分析
  • 相关阅读:
    哈夫曼树
    顺序栈和链栈
    线性表(二) 单链表的增删改查及源码 (修改)
    线性表(二):单链表的增删改查及源码
    线性表(一):顺序表的增删改查及源码
    从头学数据结构--跟随浙大陈越姥姥的步伐
    Java学习笔记--scanner获取键盘输入
    关于方法、变量、类等命名规范
    Java学习笔记--类型自动转换、强制类型转换、溢出
    java学习笔记--重载
  • 原文地址:https://www.cnblogs.com/shanyou/p/3464196.html
Copyright © 2011-2022 走看看