【问题标题】:ZeroMQ C# HelloWorld ExampleZeroMQ C# HelloWorld 示例
【发布时间】:2012-05-29 23:24:38
【问题描述】:

出于好奇,我决定浏览一下 ZeroMQ 库中的几个示例。具体来说,http://zguide.zeromq.org/cs:hwclient 处的“Hello World”示例

据我所知,我已经正确地复制了示例中的代码,并且我有以下内容:

public class Program
{
    public static void Main(string[] args)
    {
        using(var context = new Context(1))
        {
            using(Socket requester = context.Socket(SocketType.REQ))
            {
                requester.Connect("tcp://localhost:5555");

                const string requestMessage = "Hello";
                const int requestsToSend = 10;

                for(int requestNumber = 0; requestNumber < requestsToSend;requestNumber++)
                {
                    Console.WriteLine("Sending Request {0}...", requestNumber);
                    requester.Send(requestMessage,Encoding.Unicode);

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

        Console.ReadLine();

    }

}

我遇到的问题是,一旦遇到下一行,程序就会停止并等待消息,而且似乎永远不会收到它。

string reply = requester.Recv(Encoding.Unicode);

程序在这条线上被赶上了。我想这可能与冲突的 tcp 地址有关?不太确定,因为我对套接字级编程不太熟悉。

关于为什么这不起作用的任何想法?我已经搜索了 ZeroMQ 文档,但还没有找到任何东西。

【问题讨论】:

  • 你在运行 hello world 服务器吗?这旨在以请求/响应的方式与之对话,因此如果它发出请求并且服务器没有运行响应,它只是等待它。
  • 我想我可能忽略了文档。我认为 Recv() 调用正在侦听刚刚发送的消息,但我想这没有多大意义。

标签: c# sockets zeromq


【解决方案1】:

注意它是如何被称为“HWClient”的。也有一个 Hello World 服务器端。你应该先运行它。

【讨论】:

  • Greene 先生在按钮上的速度比我快,我在发帖前玩弄了一番。他应该得到这个功劳!
猜你喜欢
  • 1970-01-01
  • 2012-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-03
相关资源
最近更新 更多