[zeromq-dev] I've written a completely new C# API for ZeroMQ

Thomas Fee angrydog at hotmail.com
Wed May 2 07:18:19 CEST 2012

Hey Alex, sounds great but no way I can get it to work. It's probably because 
I'm a newb at this C# stuff. Would appreciate a quick look at this, a cut and 
paste of your code into a program "shell". At this point, I'm just trying to get 
it to compile, never mind have it work.

What I did was copy the DLL (that came with your distro) into my C# project 
directory. Then in Solution Explorer, I added your DLL as a reference (using 
"Add Reference", then Browse tab).

The compile error I get is

'ZeroMQ.ZmqSocket.Bind(string)' is inaccessible due to its protection level

Ditto for .Connect(string).

What does this mean? Would be great if you could write a beginner's tutorial. :-

Here is the code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using ZeroMQ;

namespace WpfApplication1
    public partial class MainWindow : Window
        public MainWindow()

            var publisher = new ZmqPublishSocket
                Identity = Guid.NewGuid().ToByteArray(),
                RecoverySeconds = 10

            publisher.Bind(address: "tcp://");
            var subscriber = new ZmqSubscribeSocket();
            subscriber.Connect(address: "tcp://");
            subscriber.Subscribe(prefix: ""); // subscribe to all messages
            subscriber.OnReceive += () =>
                String message;
                subscriber.Receive(out message, nonblocking: true);

            publisher.Send("Hello world!");
            return 0;

More information about the zeromq-dev mailing list