Synchronized subscriber in C#

//
// Synchronized subscriber
//

// Author: Michael Compton, Tomas Roos
// Email: ku.oc.egdeelttil|notpmoc.leahcim#ku.oc.egdeelttil|notpmoc.leahcim, moc.liamg|soorsamotp#moc.liamg|soorsamotp

using System;
using System.Text;
using System.Threading;
using ZMQ;

namespace ZMQGuide
{
internal class Program
{
public static void Main(string[] args)
{
using (var context = new Context(1))
{
using (Socket subscriber = context.Socket(SocketType.SUB), syncClient = context.Socket(SocketType.REQ))
{
subscriber.Connect("tcp://localhost:5561");
subscriber.Subscribe("", Encoding.Unicode);

syncClient.Connect("tcp://localhost:5562");

// - send a synchronization request
syncClient.Send("", Encoding.Unicode);
// - wait for synchronization reply
syncClient.Recv();

int receivedUpdates = 0;
while (!subscriber.Recv(Encoding.Unicode).Equals("END"))
{
receivedUpdates++;
}

Console.WriteLine("Received {0} updates.", receivedUpdates);
}
}

Console.ReadKey();
}
}
}