在C#和Mac Os X中使用ZMQ

时间:2017-07-15 14:36:59

标签: c# macos zeromq

我想在Mac OSX上实施ICP,所以我通过谷歌搜索了解了ZeroMQ。 我使用brew install zmq命令安装了ZeroMQ 但是,在Mac OSX上关于ZeroMq的信息很少,所以我遇到了一些问题。

这是在ZeroMQ主页上传的示例。

public static void HWClient(string[] args)
{

using (var context = new ZContext())
using (var requester = new ZSocket(context, ZSocketType.REQ))
{
    // Connect
    requester.Connect("tcp://127.0.0.1:5555");

    for (int n = 0; n < 10; ++n)
    {
        string requestText = "Hello";
        Console.Write("Sending {0}...", requestText);

        // Send
        requester.Send(new ZFrame(requestText));

        // Receive
        using (ZFrame reply = requester.ReceiveFrame()) 
        {
            Console.WriteLine(" Received: {0} {1}!", requestText, reply.ReadString());
        }
    }
}
}

当我运行这些代码时,我会收到异常The type initializer for 'ZeroMQ.lib.zmq' threw an exception. 有很多方法可以解决这个异常,但Mac OSX中没有解决方案。

请帮帮我......

2 个答案:

答案 0 :(得分:0)

我发布此评论作为评论,但没有代表:

您是否尝试过使用NetMQ(https://github.com/zeromq/netmq)?我没有在OSX上使用它(只有Windows),但它是ZMQ的原生C#实现,我发现它设计得非常好,在我看来可能比你正在使用的更容易上班,我假设是C库周围的C#包装器。

此外,如果您需要有关您正在使用的特定库的帮助,您应该发布已经尝试修复异常的方法,因为您声明“有很多方法可以修复异常,但是在Mac OSX中没有解决方案“。

答案 1 :(得分:0)

由于与加载本机libzmq库有关的几个问题,我发现https://github.com/zeromq/clrzmq4的发布版本仅在非常特殊的情况下才能在MacOS X下运行。这在主人中有一定程度的固定。现在在MacOS X下有CI,因此您可以查看https://github.com/zeromq/clrzmq4/blob/master/build.sh下的CI脚本,了解安装和构建工作的一种方法。