NetMQ: SendFrame never sends, never returns.
(I'm posting this here because I haven't found a ZeroMQ community. If you're aware of one, I'd appreciate a link.)
(I have marked the question Beginner within the context of ZeroMQ; the problem really has little to do with C# or .Net.)
I'm attempting to upgrade a .Net Framework 4.0 project to .Net Core. (The previous, working version of the project uses clrzmq.) So far I've managed to get it all working properly except the ZeroMQ aspect.
The product consists of a C# WPF application and a C++ (Windows) console application (driver). For now, I am only upgrading the WPF application to .Net Core; the driver may follow later.
My problem is that the WPF app is supposed to contact the driver. The connection is apparently set up properly but then when I attempt to send a message the SendFrame method never returns and the driver never receives the message. I also haven't managed to find the message in Wireshark, but I'm a novice with that tool.
I have produced a minimal test case which does not fail in the way that the WPF application does. That test case consists of a client and server both written in C# with NetMQ.
I don't have any ideas left for why this might be happening. I guess my next thing to try is to build the minimal server in C++. Help, please?
3 Replies
if i was in your place (and i've been) and i already tried everything i could, i would include the source code of the client in the project and step through that to see where it ends
When I run the minimal client code from the WPF app (on its own thread), the minimal server hears the message. I then targeted the driver with a valid message copied from the failing code, and the driver received the message.
I was moving a socket across threads (not OK without special logic). Never mind.
sure; use
/close
if you don't need the thread anymore