예제 #1
0
 static void Main(string[] args)
 {
     Console.Write("\n  starting CommService client");
     Console.Write("\n =============================\n");
     Console.Title = "Writer Client to write on the NOSQL database";
     HiResTimer timerWriter = new HiResTimer();
     Client clnt = new Client();
     clnt.processCommandLine(args);
     string localPort = args[0];
     clnt.localUrl = "http://localhost:"+localPort+"/CommService";
     string localAddr = Util.urlAddress(clnt.localUrl);
     Receiver rcvr = new Receiver(localPort, localAddr);
     rcvr.setTimerFromClient(timerWriter);
     clnt.startRcvrService(rcvr);
     Sender sndr = new Sender(clnt.localUrl);  // Sender needs localUrl for start message
     MessageMaker writerInput = new MessageMaker();
     Message msg = new Message();
     string fileName = ".\\WriterClientInput.xml";
     int numberOfRequestsWriters = Convert.ToInt32(args[1]);
     XDocument xmldoc = XDocument.Load(fileName);
     var requests = xmldoc.Descendants("Request");
     int requestCount = 0, i = 0; List<XElement> totalrequest = new List<XElement>();
     while (i < numberOfRequestsWriters){    //set the specified number of requests to send
         totalrequest.Add(requests.ElementAt(i)); i++;}
     timerWriter.Start();
     foreach (var request in totalrequest){
         msg = new Message();
         msg = writerInput.makeMessage(clnt.localUrl, clnt.remoteUrl, request);
         Console.Title = "Writer Client to write to NoSQl database: Writing " + (++requestCount) + " requests";
         if (!sndr.Connect(msg.toUrl)){
             Console.Write("\n  could not connect in {0} attempts", sndr.MaxConnectAttempts);
             sndr.shutdown();
             rcvr.shutDown();
             return;
         }
         while (true) { 
                 clnt.printMessage(msg);
                 if (!sndr.sendMessage(msg))
                     return;
                 Thread.Sleep(100);
                 break;
             }                
         sndr.sendLatencyWriter(rcvr.avgLatency);}
     msg.content = "done";
     sndr.sendMessage(msg);
     Util.waitForUser();         
     rcvr.shutDown();
     sndr.shutdown();
     Console.Write("\n\n");
 }
예제 #2
0
        static void Main(string[] args)
        {
            Console.Write("\n  starting CommService client");
            Console.Write("\n =============================\n");
            Console.Title = "Writer Client to write on the NOSQL database";
            HiResTimer timerWriter = new HiResTimer();
            Client     clnt        = new Client();

            clnt.processCommandLine(args);
            string localPort = args[0];

            clnt.localUrl = "http://localhost:" + localPort + "/CommService";
            string   localAddr = Util.urlAddress(clnt.localUrl);
            Receiver rcvr      = new Receiver(localPort, localAddr);

            rcvr.setTimerFromClient(timerWriter);
            clnt.startRcvrService(rcvr);
            Sender       sndr = new Sender(clnt.localUrl); // Sender needs localUrl for start message
            MessageMaker writerInput = new MessageMaker();
            Message      msg = new Message();
            string       fileName = ".\\WriterClientInput.xml";
            int          numberOfRequestsWriters = Convert.ToInt32(args[1]);
            XDocument    xmldoc = XDocument.Load(fileName);
            var          requests = xmldoc.Descendants("Request");
            int          requestCount = 0, i = 0; List <XElement> totalrequest = new List <XElement>();

            while (i < numberOfRequestsWriters)     //set the specified number of requests to send
            {
                totalrequest.Add(requests.ElementAt(i)); i++;
            }
            timerWriter.Start();
            foreach (var request in totalrequest)
            {
                msg           = new Message();
                msg           = writerInput.makeMessage(clnt.localUrl, clnt.remoteUrl, request);
                Console.Title = "Writer Client to write to NoSQl database: Writing " + (++requestCount) + " requests";
                if (!sndr.Connect(msg.toUrl))
                {
                    Console.Write("\n  could not connect in {0} attempts", sndr.MaxConnectAttempts);
                    sndr.shutdown();
                    rcvr.shutDown();
                    return;
                }
                while (true)
                {
                    clnt.printMessage(msg);
                    if (!sndr.sendMessage(msg))
                    {
                        return;
                    }
                    Thread.Sleep(100);
                    break;
                }
                sndr.sendLatencyWriter(rcvr.avgLatency);
            }
            msg.content = "done";
            sndr.sendMessage(msg);
            Util.waitForUser();
            rcvr.shutDown();
            sndr.shutdown();
            Console.Write("\n\n");
        }