• clr_zmq Vs2010版本


    .net的消息队列很方便的一个库。 在github上的主版本虽然也支持fw4.0,但是必须使用vs2012以上进行编译。 这样就依赖vcredist运行时。 因为win7 sp1以下版本,无法安装vc2015的运行时,所以zmq初始化会有问题,比如提示缺少apixxxxxxx-100-110.dll什么的,还有无法找到libzmq.dll什么的。所以在网上flow 了一圈,下了一个支持vs2010编译的 zmq老版本。

    使用上有一些差别,不过兼容性更高,也支持与新版本的zmq通讯。有需要的同学自取。

    Example server
    
    using System;
    using System.Text;
    using System.Threading;
    using ZMQ;
    
    namespace ZMQGuide
    {
        class Program
        {
            static void Main(string[] args)
            {
                // ZMQ Context, server socket
                using (ZmqContext context = ZmqContext.Create())
                using (ZmqSocket server = context.CreateSocket(SocketType.REP))
                {
                    server.Bind("tcp://*:5555");
                    
                    while (true)
                    {
                        // Wait for next request from client
                        string message = server.Receive(Encoding.Unicode);
                        Console.WriteLine("Received request: {0}", message);
    
                        // Do Some 'work'
                        Thread.Sleep(1000);
    
                        // Send reply back to client
                        server.Send("World", Encoding.Unicode);
                    }
                }
            }
        }
    }
    Example client
    
    using System;
    using System.Text;
    using ZMQ;
    
    namespace ZMQGuide
    {
        class Program
        {
            static void Main(string[] args)
            {
                // ZMQ Context and client socket
                using (ZmqContext context = ZmqContext.Create())
                using (ZmqSocket client = context.CreateSocket(SocketType.REQ))
                {
                    client.Connect("tcp://localhost:5555");
    
                    string request = "Hello";
                    for (int requestNum = 0; requestNum < 10; requestNum++)
                    {
                        Console.WriteLine("Sending request {0}...", requestNum);
                        client.Send(request, Encoding.Unicode);
    
                        string reply = client.Receive(Encoding.Unicode);
                        Console.WriteLine("Received reply {0}: {1}", requestNum, reply);
                    }
                }
            }
        }
    }

    https://files.cnblogs.com/files/aoldman/vs2010_ZMQ.zip

  • 相关阅读:
    IntelliJIDEA永久注册使用
    并行设计模式(二)-- Master-Worker模式
    Guava之CaseFormat
    solr6.3.0升级与IK动态词库自动加载
    算法思维
    并发库应用之一 & ThreadLocal实现线程范围的共享变量
    filecoin里程碑事件
    博客园 增加打赏功能
    session-token-cookie讲解
    golang原生的RPC实现
  • 原文地址:https://www.cnblogs.com/aoldman/p/8929296.html
Copyright © 2020-2023  润新知