Esempio n. 1
0
 private void sendMessageToServer(IEnumerable <XElement> results, HiResTimer timer,
                                  MessageMaker msgMaker, Sender sndr, Receiver rcvr)
 {
     timer.Start();
     foreach (var eachInput in results)
     {
         Message msg = new Message();
         msg = msgMaker.makeMessage(this.localUrl, this.remoteUrl, eachInput);
         if (!sndr.Connect(msg.toUrl))
         {
             Console.Write("\n  could not connect in {0} attempts", sndr.MaxConnectAttempts);
             sndr.shutdown();
             rcvr.shutDown();
             return;
         }
         "Message sent".endofTest();
         "Content".title();
         Console.Write("\n\n{0}\n", msg.content);
         "End of message".endofTest();
         while (true)
         {
             if (sndr.sendMessage(msg))
             {
                 Thread.Sleep(200);
                 break;
             }
         }
         sndr.SendReaderLatency(rcvr.totalExecutionTime / rcvr.count);
         sndr.SendWriterLatency(rcvr.totalExecutionTime / rcvr.count);
     }
 }
Esempio n. 2
0
        static void Main(string[] args)
        {
            MessageMaker msgMaker = new MessageMaker();

            Console.Write("\nStarting Test Executive");
            Console.Write("\n=============================\n");
            Message    msg   = new Message();
            HiResTimer timer = new HiResTimer();

            Console.Title = "Write Client";
            WriteClient writeClient = new WriteClient();

            if (args.Length == 2)
            {
                writeClient.numMsg = Convert.ToInt32(args[1]);
            }
            writeClient.processCommandLine(args);
            string   localPort = Util.urlPort(writeClient.localUrl);
            string   localAddr = Util.urlAddress(writeClient.localUrl);
            Receiver rcvr      = new Receiver(localPort, localAddr, timer);

            if (rcvr.StartService())
            {
                rcvr.doService(rcvr.defaultServiceAction());
            }
            Sender    sndr     = new Sender(writeClient.localUrl); // Sender needs localUrl for start message
            XDocument xmlInput = writeClient.GetInputFromXml();
            var       results  = xmlInput.Descendants("element");

            writeClient.sendMessageToServer(results, timer, msgMaker, sndr, rcvr);
            Console.Write("\n  sender's url is {0}", writeClient.localUrl);
            Console.Write("\n  attempting to connect to {0}\n", writeClient.remoteUrl);
            //Wait until all messages from server are received.
            while (rcvr.count < writeClient.numMsg)
            {
                sndr.SendWriterLatency(rcvr.totalExecutionTime / rcvr.count);
            }
            msg.content = "done";
            msg.fromUrl = writeClient.localUrl;
            msg.toUrl   = writeClient.remoteUrl;
            sndr.sendMessage(msg);
            Util.waitForUser();
            sndr.SendWriterLatency(rcvr.totalExecutionTime / rcvr.count);
            rcvr.shutDown();
            sndr.shutdown();
        }