C # ZMQ Socket.SetSockOpt SocketOpt.LINGER - Какие допустимые параметры? - PullRequest
0 голосов
/ 19 октября 2011
        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);
            }
        }

Я пробовал long, ulongs и байтовые массивы, и я не могу найти значение, которое не приводит к исключению "недопустимого аргумента".

1 Ответ

1 голос
/ 27 октября 2011

Как я вижу из источников библиотеки clrzmq2 ( Socket.cs ), существует 4 перегрузки метода SetSocketOpt () с long , ulong , байтовый массив или целое число параметр. Чтобы указать период задержки для отключения сокета, вы должны использовать целочисленный параметр. В любом случае, я предлагаю вам использовать свойство Socket.Linger , чтобы избежать возможного увольнения.

...