ZMQ through C # - clrzmq Windows XP binding fails, but everything is fine on Win7

I am developing a platform using ZMQ (2.2) as the main communication layer. Earlier this week, I decided to take advice on the zeromq website and upgrade to the latest stable build 3.2.2

However, having gone through the pain of upgrading to a new API, I was seriously disappointed to find that the problem with the clrzmq binding seems to be that it cannot load the libzmq library on computers running Windows XP (SP3). Am I still getting a SEHException ?!

I'm just wondering if anyone has the same problem, and if there is a workaround (or even a better fix) for him?

Greetings :)

EDIT Just to clarify, the library is loaded perfectly, I know this because the context is created without any problems. The problem occurs when the CreateSocket method is called in context ... see code snippet below

        ZmqContext context = ZmqContext.Create();

        ZmqSocket socket = context.CreateSocket(SocketType.REQ);

After adding the trace suggested by Jacob, I get the following output

Assertion failed: Connection refused (..\..\..\src\signaler.cpp:310)

Any ideas what this means?

EDIT It should also be mentioned that this question does not work on all XP machines, only some of them . I tried to find out what is the difference between machines that work and those that don’t. Without knowing this, it would be too risky to update and release into the production environment.

+5
source share
1 answer

, , REQ (, ), REQ . , , . , , - REQ. , .

REP (response) - "" REQ/REP (/), bind REP , "tcp://127.0.0.1: 5555", , " ", "tcp://*: 5555". connect REQ , "tcp://127.0.0.1: 5555", .

:

ZmqContext context = ZmqContext.Create();
ZmqSocket socket = context.CreateSocket(SocketType.REP);
socket.Bind("tcp://*:5501");

:

ZmqContext context = ZmqContext.Create();
ZmqSocket socket = context.CreateSocket(SocketType.REQ);
socket.Connect("tcp://127.0.0.1:5501");

, , , (, , NETSTAT).

ZeroMq . zmq_tcp API, - API zmq_socket.

+1

All Articles