【问题标题】:How to resolve 'NetMQ.AddressAlreadyInUseException' using ZeroMQ如何使用 ZeroMQ 解决“NetMQ.AddressAlreadyInUseException”
【发布时间】:2017-09-29 12:32:31
【问题描述】:

让我解释一下我是如何从这样一个简单的代码中得到这个异常的,我使用了一个名为 cAlgo 的交易程序,我试图在其中运行一个 NetMQ 服务器,显然在停止它时,它没有正确关闭,离开了端口在我重新启动计算机之前无法使用。

我需要一些帮助来恢复此端口并使其再次可用,我尝试清理它但没有成功,我从 ZeroMQ 开始,所以我不熟练。

谢谢,附上异常(带有内部SocketException,每个套接字地址(协议/网络地址/端口)仅使用一次。

void Main()
{
    using (var server = new ResponseSocket("@tcp://localhost:5555")) // bind
    using (var client = new RequestSocket(">tcp://localhost:5555"))  // connect
    {
        // Send a message from the client socket
        client.SendFrame("Hello");

        // Receive the message from the server socket
        string m1 = server.ReceiveFrameString();
        Console.WriteLine("From Client: {0}", m1);

        // Send a response back from the server
        server.SendFrame("Hi Back");

        // Receive the response from the client socket
        string m2 = client.ReceiveFrameString();
        Console.WriteLine("From Server: {0}", m2);
    }
}

【问题讨论】:

  • 只是一个更新,关闭 cAlgo 应用程序将释放端口,但这不是我正在寻找的解决方案。

标签: c# .net zeromq netmq


【解决方案1】:

我通过创建一个全局 ResponseSocket 并在我的应用程序内的实例停止之前关闭套接字来解决它。

【讨论】:

  • 你能解释一下怎么做吗?
  • 所以不要使用"using",而是声明private ResponseSocket _responseSocket 在程序停止的最后只dispose socket
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-18
  • 2015-08-16
  • 1970-01-01
  • 1970-01-01
  • 2018-11-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多