C#ZMQ Socket.SetSockOpt SocketOpt.LINGER - 有效选项是什么?

时间:2011-10-19 10:53:49

标签: c# zeromq

        using (var context = new Context(1))
        {
            using (Socket socket = context.Socket(SocketType.XREQ))
            {

                socket.SetSockOpt(SocketOpt.LINGER, 100ul);

                socket.Connect("tcp://somewhere:5566");


                string content = "test message";

                socket.Send(content, Encoding.Unicode);
                string message = socket.Recv(Encoding.Unicode);
                Console.WriteLine("Received reply: " + message);
            }
        }

我已经尝试了longs,ulongs和byte数组,但我找不到一个不会导致抛出“非法参数”异常的值。

1 个答案:

答案 0 :(得分:1)

正如我从clrzmq2库源(Socket.cs)中看到的那样,使用longulongbyte array的SetSocketOpt()方法有4次重载}或integer参数。要指定套接字关闭的延迟时间,请使用整数参数。 无论如何,我建议你使用Socket.Linger属性来避免任何可能的解雇。