1

シナリオ: Node.jsサーバーでZeroMQプルリッスンが行われるとtcp://127.0.0.1:2202。また、データはC#コンソールアプリケーションで送信する必要がありました。

問題:
リファレンス例

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.PUSH))
            {
                client.Connect("tcp://127.0.0.1:2202");

                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);
                }
            }
        }
    }
}

次のエラーが発生します:

Error   1   The type or namespace name 'ZmqContext' could not be found (are you missing a using directive or an assembly reference?)    D:\..\Program.cs    26  24  PROJECTA

情報:PM> Install-Package clrzmq次のコマンドの 後にコマンド出力を発行して、パッケージマネージャーコンソールを使用して最新バージョンをインストールしようとしました。

'clrzmq 2.2.5' already installed.
Successfully added 'clrzmq 2.2.5' to PROJECTA.

質問:どこが間違っているのか、何が欠けているのか、誰か教えてもらえますか?


更新:ダウンロードして試しましたが、運がありません:-)

事前に多大な助けをありがとう

4

2 に答える 2

3

私はあなたの問題を再現することができました。ドキュメントが少し古くなっているためかもしれませんが、これは私のために構築されているようです:

using ZMQ;

namespace TestConsole 
{
    class Program
    {
        static void Main(string[] args)
        {
            // ZMQ Context and client socket
            using (Context context = new Context())
            using (Socket client = context.Socket(SocketType.PUSH))
            {
                client.Connect("tcp://127.0.0.1:2202");

                string request = "Hello";
                for (int requestNum = 0; requestNum < 10; requestNum++)
                {
                    Console.WriteLine("Sending request {0}...", requestNum);
                    client.Send(request, Encoding.Unicode);

                    string reply = client.Recv(Encoding.Unicode);
                    Console.WriteLine("Received reply {0}: {1}", requestNum, reply);
                }
            }
        }
    }
}

ZeroMQや、実際に動作することを確認するために実行しているものはありませんが、試してみることができますか?

于 2013-03-28T06:22:38.057 に答える
2

私の経験から、clrzmq(ZeroMQ)の最新バージョン(3.0)を入手するには、次のようにパッケージマネージャーの呼び出しに「-Version」オプションを追加する必要がありました。

PM>Install-Package clrzmq -Version 3.0.0-rc1

また、3.0を使用する場合、「使用」はZMQではなくZeroMQです。

using ZeroMQ;

于 2014-01-08T18:00:09.237 に答える