Beispiel #1
0
        public static void Main(string[] args)
        {
            var workers = new List <Thread>(WORKERS_COUNT);

            using (NetMQContext context = NetMQContext.Create())
            {
                using (RouterSocket client = context.CreateRouterSocket())
                {
                    string cnn = string.Format("tcp://localhost:{0}", PORT_NUMBER);
                    client.Bind(cnn);
                    Console.WriteLine("[B] Connect to {0}", cnn);

                    for (int workerNumber = 0; workerNumber < WORKERS_COUNT; workerNumber++)
                    {
                        workers.Add(new Thread(WorkerTask));
                        workers[workerNumber].Start(PORT_NUMBER);
                    }

                    for (int taskNumber = 0; taskNumber < WORKERS_COUNT * 10; taskNumber++)
                    {
                        //  LRU worker is next waiting in queue
                        string address = client.ReceiveString();
                        //Console.WriteLine("[B] Message received: {0}", address);
                        string empty = client.ReceiveString();
                        //Console.WriteLine("[B] Message received: {0}", empty);
                        string ready = client.ReceiveString();
                        //Console.WriteLine("[B] Message received: {0}", ready);

                        client.SendMore(address);
                        //Console.WriteLine("[B] Message sent: {0}", address);
                        client.SendMore("");
                        //Console.WriteLine("[B] Message sent: {0}", "");
                        client.Send("This is the workload");
                        //Console.WriteLine("[B] Message sent: {0}", "This is the workload");
                    }

                    //  Now ask mamas to shut down and report their results
                    for (int taskNbr = 0; taskNbr < WORKERS_COUNT; taskNbr++)
                    {
                        string address = client.ReceiveString();
                        //Console.WriteLine("[B] Message received: {0}", address);
                        string empty = client.ReceiveString();
                        //Console.WriteLine("[B] Message received: {0}", empty);
                        string ready = client.ReceiveString();
                        //Console.WriteLine("[B] Message received: {0}", ready);

                        client.SendMore(address);
                        //Console.WriteLine("[B] Message sent: {0}", address);
                        client.SendMore("");
                        //Console.WriteLine("[B] Message sent: {0}", "");
                        client.Send("END");
                        //Console.WriteLine("[B] Message sent: {0}", "END");
                    }
                }
            }

            Console.ReadLine();
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            using (NetMQContext context = NetMQContext.Create())
                using (RouterSocket router = context.CreateRouterSocket())
                {
                    router.Bind("tcp://*:33333");

                    while (true)
                    {
                        byte[] identity = router.Receive();
                        string message  = router.ReceiveString();

                        Console.WriteLine(message);

                        router.SendMore(identity).Send(message);
                    }
                }
        }