static void Main(string[] args) { Console.WriteLine(" The intent of the write client is to stress the database with write operations."); Console.WriteLine(" Write operations - Insert, Delete, Edit name, Edit Description and Add Children."); Console.WriteLine("\n If log option is enabled, messsages are logged to this console window as they are sent."); Console.WriteLine(" If log is enabled result of response is displayed as responses are received from server."); Console.WriteLine(" If log option is disabled, only latency time for each operation is disaplyed on the console window."); Client clnt = new Client(); clnt.processCommandLine(args); bool log_message = clnt.processCommandLineForWriteLog(args); if (log_message) { Console.WriteLine(" (Log option is Enabled for this client)"); } else { Console.WriteLine(" (Log option is Disabled for this client)"); } string localPort = Util.urlPort(clnt.localUrl); string localAddr = Util.urlAddress(clnt.localUrl); Receiver rcvr = new Receiver(localPort, localAddr); string win_title = "Write Client - " + localPort; Console.Title = win_title; Sender sndr = new Sender(clnt.localUrl); // Sender needs localUrl for start message Action client_receive_action = clnt.define_receive_action(rcvr, sndr, log_message, localPort); if (rcvr.StartService()) { rcvr.doService(client_receive_action); } Message msg = new Message(); msg.fromUrl = clnt.localUrl; msg.toUrl = clnt.remoteUrl; Console.WriteLine("\n\n Starting CommService Write client"); Console.Write(" ============================="); Console.Write("\n Write client local url is {0}", msg.fromUrl); Console.Write("\n Attempting to connect to server on {0}\n", msg.toUrl); if (!sndr.Connect(msg.toUrl)) { Console.Write("\n Could not connect to server in {0} attempts, closing application.", sndr.MaxConnectAttempts); sndr.shutdown(); rcvr.shutDown(); return; } Console.WriteLine("\n *****************************\n Going to read messages present in XML file - Write_Client_XML.xml and send them sequentially to server.\n *****************************"); clnt.send_messages(sndr, msg, "./../../../../SavedXMLFiles/Write_Client_XML.xml", log_message); Thread.Sleep(100); msg.content = "done"; sndr.sendMessage(msg); Util.waitForUser(); // shut down this client's Receiver and Sender by sending close messages rcvr.shutDown(); sndr.shutdown(); Console.Write("\n\n"); }
static void Main(string[] args) { Thread.Sleep(2000); Console.Write("\n starting CommService client"); Console.Write("\n =============================\n"); Console.Title = "Reader Client"; Client clnt = new Client(); clnt.processCommandLine(args); string localPort = Util.urlPort(clnt.localUrl); string localAddr = Util.urlAddress(clnt.localUrl); Receiver rcvr = new Receiver(localPort, localAddr); if (rcvr.StartService()) { rcvr.doService(rcvr.defaultServiceAction()); } Sender sndr = new Sender(clnt.localUrl); // Sender needs localUrl for start message Message msg = new Message(); msg.fromUrl = clnt.localUrl; msg.toUrl = clnt.remoteUrl; Console.Write("\n sender's url is {0}", msg.fromUrl); Console.Write("\n attempting to connect to {0}\n", msg.toUrl); if (!sndr.Connect(msg.toUrl)) { Console.Write("\n could not connect in {0} attempts", sndr.MaxConnectAttempts); sndr.shutdown(); rcvr.shutDown(); return; } clnt.hrt.Start(); rcvr.setTotalMessageSize(clnt.getMsgLen("XMLReader.xml")); clnt.readMsgTemplate("XMLReader.xml", sndr); while (true) { if (rcvr.getLastFlag()) { clnt.hrt.Stop(); break; } } ulong latency = clnt.hrt.ElapsedMicroseconds; clnt.travelLatency(latency, sndr); msg.content = "done"; sndr.sendMessage(msg); // Wait for user to press a key to quit. // Ensures that client has gotten all server replies. Util.waitForUser(); // shut down this client's Receiver and Sender by sending close messages rcvr.shutDown(); sndr.shutdown(); Console.Write("\n\n"); }
static void Main(string[] args) { Console.WriteLine(" The intent of the demo client is to demonstarte that all the operations of Project-2 can be executed remotely."); Console.WriteLine(" All the request messages stored in /SavedXMLFiles/Demo_Client_XML.xml are sent to server sequentially."); Console.WriteLine(" The Demo_Client_XML.xml file consists of Write operations, Read operations and Persist operations."); Console.WriteLine(" Write operations - Insert, Delete, Edit Name, Edit Description and Add Children"); Console.WriteLine(" Read operations - Get Value, Get Children, Get Keys with string pattern in metadata"); Console.WriteLine(" PErsist operations - Persist database, Load Database"); Console.WriteLine("\n The DB contents are displayed on the server only in case of demo client to show the successful operations on DB."); Console.WriteLine(" These are displayed to show to user that operations are successfully performed on the database."); Console.WriteLine("\n ******************\n To launch the readers and writers enter any key on the TestExecutive window."); Console.WriteLine(" You can verify all types of operations done and displayed on server window, before launching readers and writers."); Console.Write("\n Starting CommService for demo client"); Console.Write("\n ================================\n"); Thread.Sleep(1000); bool log_message = true; Client clnt = new Client(); clnt.processCommandLine(args); Receiver rcvr = new Receiver(Util.urlPort(clnt.localUrl), Util.urlAddress(clnt.localUrl)); string win_title = "Demo Client - " + Util.urlPort(clnt.localUrl); Console.Title = win_title; Action client_receive_action = clnt.define_receive_action(rcvr, log_message); if (rcvr.StartService()) { rcvr.doService(client_receive_action); } Sender sndr = new Sender(clnt.localUrl); // Sender needs localUrl for start message Message msg = new Message(); msg.fromUrl = clnt.localUrl; msg.toUrl = clnt.remoteUrl; Console.Write("\n Demo client local url is {0}", msg.fromUrl); Console.Write("\n Attempting to connect to server on {0}\n", msg.toUrl); if (!sndr.Connect(msg.toUrl)) { Console.Write("\n could not connect in {0} attempts", sndr.MaxConnectAttempts); sndr.shutdown(); rcvr.shutDown(); return; } clnt.send_messages(sndr, msg, "./../../../../SavedXMLFiles/Demo_Client_XML.xml", log_message); Thread.Sleep(100); msg.content = "done"; sndr.sendMessage(msg); // Wait for user to press a key to quit. Ensures that client has gotten all server replies. Util.waitForUser(); // shut down this client's Receiver and Sender by sending close messages rcvr.shutDown(); sndr.shutdown(); Console.Write("\n\n"); }
public void sendEachRequest(XElement request,TestExec clnt, Message msg, Sender sndr, Receiver rcvr, MessageMaker testExecInput) {//send each request to construct xml request message and send it to the server msg = new Message(); msg = testExecInput.makeMessage(clnt.localUrl, clnt.remoteUrl, request); if (!sndr.Connect(msg.toUrl)) { Console.Write("\n could not connect in {0} attempts", sndr.MaxConnectAttempts); sndr.shutdown(); rcvr.shutDown(); return; } while (true) { //msg.content = "Message #" + (++counter).ToString(); Console.Write("\n============Start of the Message==========\n"); Console.Write("\n Sending Message:"); Console.Write("\n==========================\n"); Console.WriteLine(msg.content); Console.WriteLine("==================End of Message==============="); if (!sndr.sendMessage(msg)) return; Thread.Sleep(100); break; } }
public void sendEachRequest(XElement request, TestExec clnt, Message msg, Sender sndr, Receiver rcvr, MessageMaker testExecInput) {//send each request to construct xml request message and send it to the server msg = new Message(); msg = testExecInput.makeMessage(clnt.localUrl, clnt.remoteUrl, request); if (!sndr.Connect(msg.toUrl)) { Console.Write("\n could not connect in {0} attempts", sndr.MaxConnectAttempts); sndr.shutdown(); rcvr.shutDown(); return; } while (true) { //msg.content = "Message #" + (++counter).ToString(); Console.Write("\n============Start of the Message==========\n"); Console.Write("\n Sending Message:"); Console.Write("\n==========================\n"); Console.WriteLine(msg.content); Console.WriteLine("==================End of Message==============="); if (!sndr.sendMessage(msg)) { return; } Thread.Sleep(100); break; } }
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); } }
static void Main(string[] args) { Console.Write("\n starting CommService client"); Console.Write("\n =============================\n"); Console.Title = "Test Executive Client to display the results of remote NoSQL database operations"; TestExec clnt = new TestExec(); clnt.processCommandLine(args); HiResTimer timerTestExec = new HiResTimer(); string localPort = Util.urlPort(clnt.localUrl); string localAddr = Util.urlAddress(clnt.localUrl); Receiver rcvr = new Receiver(localPort, localAddr); rcvr.setTimerFromClient(timerTestExec); clnt.startRcvrService(rcvr); Console.WriteLine("\n The Message request is"); Console.Write("\n =================================\n"); Sender sndr = new Sender(clnt.localUrl); // Sender needs localUrl for start message MessageMaker testExecInput = new MessageMaker(); Message msg = new Message(); string fileName = ".\\TestExecInput.xml"; XDocument xmldoc = XDocument.Load(fileName); var requests = xmldoc.Descendants("Request"); int requestCount = 0, readers = 0, writers = 0, portReader = 0, portWriter = 0, numberOfRequests = 0, numberOfRequestsWriters = 0; string readerDisplay = "", writerDisplay = ""; clnt.getReadersWritersCount(xmldoc, ref readers, ref writers, ref portReader, ref portWriter, ref numberOfRequests, ref readerDisplay, ref writerDisplay, ref numberOfRequestsWriters); timerTestExec.Start(); foreach (var request in requests) { //send each request to construct message and send it to the server clnt.sendEachRequest(request, clnt, msg, sndr, rcvr, testExecInput); Console.Title = "TestExec Client to display the NoSQl database operations: Operations " + (++requestCount) + " are Sent"; } msg.content = "done"; Util.waitForUser(); rcvr.shutDown(); sndr.shutdown(); Console.Write("\n\n"); if (args.Count() != 0) { readers = Convert.ToInt32(args[0]); writers = Convert.ToInt32(args[1]); numberOfRequests = Convert.ToInt32(args[2]); numberOfRequestsWriters = Convert.ToInt32(args[3]); } for (int i = 1; i <= writers; i++) { System.Diagnostics.Process.Start(".\\Client\\bin\\Debug\\Client.exe", "" + (portWriter++) + " " + numberOfRequestsWriters + " " + writerDisplay); } for (int j = 1; j <= readers; j++) { System.Diagnostics.Process.Start(".\\Client2\\bin\\Debug\\Client2.exe", ("" + (portReader++) + " " + numberOfRequests + " " + readerDisplay)); } }
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(); }
static void Main(string[] args) { TestExecutive test = new TestExecutive(); if (args.Count() == 4) { test.readers = Convert.ToInt32(args[0]); test.writers = Convert.ToInt32(args[1]); test.numReaderMessages = Convert.ToInt32(args[2]); test.numWriterMessages = Convert.ToInt32(args[3]); } MessageMaker msgMaker = new MessageMaker(); HiResTimer timer = new HiResTimer(); Message msg = new Message(); Console.Write("\nStarting Test Executive"); Console.Write("\n=============================\n"); Console.Title = "Test Executive"; string localPort = Util.urlPort(test.localUrl); string localAddr = Util.urlAddress(test.localUrl); Receiver rcvr = new Receiver(localPort, localAddr, timer); if (rcvr.StartService()) { rcvr.doService(rcvr.defaultServiceAction()); } Sender sndr = new Sender(test.localUrl); // Sender needs localUrl for start message XDocument xmlInput = test.GetInputFromXml(); var results = xmlInput.Descendants("element"); Console.Write("\n sender's url is {0}", test.localUrl); Console.Write("\n attempting to connect to {0}\n", test.remoteUrl); timer.Start(); test.sendMessageToServer(results, timer, msgMaker, sndr, rcvr); msg.content = "done"; msg.fromUrl = test.localUrl; msg.toUrl = test.remoteUrl; sndr.sendMessage(msg); Console.WriteLine("\n\nPress any key to start performance testing..."); Util.waitForUser(); test.LaunchReadersAndWriters(); rcvr.shutDown(); sndr.shutdown(); }
static void Main(string[] args) { Console.Write("\n starting CommService client"); Console.Write("\n =============================\n"); HiResTimer timerReader = 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(timerReader); clnt.startRcvrService(rcvr); Sender sndr = new Sender(clnt.localUrl); // Sender needs localUrl for start message MessageMaker readerInput = new MessageMaker(); string fileName = ".\\ReaderClientInput.xml"; Message msg = new Message(); int numRequests = 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 < numRequests) //set the specified number of requests to send { totalrequest.Add(requests.ElementAt(i)); i++; } timerReader.Start(); foreach (var request in totalrequest) //send each request to the message maker to create a message { msg = new Message(); msg = readerInput.makeMessage(clnt.localUrl, clnt.remoteUrl, request); Console.Title = "Reader Client to query the NoSQl database: Querying " + (++requestCount) + " requests"; if (!sndr.Connect(msg.toUrl)) //send url of the destination to the sender { Console.Write("\n could not connect in {0} attempts", sndr.MaxConnectAttempts); sndr.shutdown(); rcvr.shutDown(); return; } Thread.Sleep(700); while (true) { clnt.printMessage(msg); //print the message contents if (!sndr.sendMessage(msg)) // send the message to the sender { return; } Thread.Sleep(100); break; } sndr.sendLatencyReader(rcvr.avgLatency); } Console.Write("\n Sender's url is {0}", msg.fromUrl); Console.Write("\n Attempting to connect to {0}\n", msg.toUrl); msg.content = "done"; sndr.sendMessage(msg); Util.waitForUser(); rcvr.shutDown(); sndr.shutdown(); }
static void Main(string[] args) { Console.Write("\n starting CommService client"); Console.Write("\n =============================\n"); Console.Title = "Client #2"; Client clnt = new Client(); clnt.processCommandLine(args); string localPort = Util.urlPort(clnt.localUrl); string localAddr = Util.urlAddress(clnt.localUrl); Receiver rcvr = new Receiver(localPort, localAddr); if (rcvr.StartService()) { rcvr.doService(rcvr.defaultServiceAction()); } Sender sndr = new Sender(clnt.localUrl); // Sender needs localUrl for start message Message msg = new Message(); msg.fromUrl = clnt.localUrl; msg.toUrl = clnt.remoteUrl; Console.Write("\n sender's url is {0}", msg.fromUrl); Console.Write("\n attempting to connect to {0}\n", msg.toUrl); if (!sndr.Connect(msg.toUrl)) { Console.Write("\n could not connect in {0} attempts", sndr.MaxConnectAttempts); sndr.shutdown(); rcvr.shutDown(); return; } int numMsgs = 5; int counter = 0; while (true) { msg = new Message(); msg.fromUrl = clnt.localUrl; msg.toUrl = clnt.remoteUrl; msg.content = "Message #" + (++counter).ToString(); Console.Write("\n sending {0}", msg.content); if (!sndr.sendMessage(msg)) { return; } ///////////////////////////////////////////////////////////////// // The delay, below, can now be removed without changing the // sending behavior except that it becomes faster. However // We want to simulate a "normal" minimum delay between messages // to measure latency and server throughput. Without the delay // the server's queue will very quickly contain a large number // of messages and we won't be accurately representing the system // behavior for a single client and server. // // Instead, we stress the server by running multiple clients // concurrently. // Thread.Sleep(100); if (counter >= numMsgs) { break; } } msg = new Message(); msg.fromUrl = clnt.localUrl; msg.toUrl = clnt.remoteUrl; msg.content = "done"; sndr.sendMessage(msg); // Wait for user to press a key to quit. // Ensures that client has gotten all server replies. Util.waitForUser(); // shut down this client's Receiver and Sender by sending close messages rcvr.shutDown(); sndr.shutdown(); Console.Write("\n\n"); }
static void Main(string[] args) { Console.Write("\n starting CommService client"); Console.Write("\n =============================\n"); HiResTimer timerReader = 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(timerReader); clnt.startRcvrService(rcvr); Sender sndr = new Sender(clnt.localUrl); // Sender needs localUrl for start message MessageMaker readerInput = new MessageMaker(); string fileName = ".\\ReaderClientInput.xml"; Message msg = new Message(); int numRequests = 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 < numRequests) { //set the specified number of requests to send totalrequest.Add(requests.ElementAt(i)); i++;} timerReader.Start(); foreach (var request in totalrequest) { //send each request to the message maker to create a message msg = new Message(); msg = readerInput.makeMessage(clnt.localUrl, clnt.remoteUrl, request); Console.Title = "Reader Client to query the NoSQl database: Querying " + (++requestCount) + " requests"; if (!sndr.Connect(msg.toUrl)) { //send url of the destination to the sender Console.Write("\n could not connect in {0} attempts", sndr.MaxConnectAttempts); sndr.shutdown(); rcvr.shutDown(); return; } Thread.Sleep(700); while (true) { clnt.printMessage(msg); //print the message contents if (!sndr.sendMessage(msg)) // send the message to the sender return; Thread.Sleep(100); break;} sndr.sendLatencyReader(rcvr.avgLatency);} Console.Write("\n Sender's url is {0}", msg.fromUrl); Console.Write("\n Attempting to connect to {0}\n", msg.toUrl); msg.content = "done"; sndr.sendMessage(msg); Util.waitForUser(); rcvr.shutDown(); sndr.shutdown(); } } }
/// <summary> /// Performance testing by inserting items /// </summary> /// <param name="hres"></param> /// <param name="msg"></param> /// <param name="clnt"></param> /// <param name="rcvr"></param> /// <param name="sndr"></param> private static void PerformanceTesting(HiResTimer hres, Message msg, WriterClient clnt, Receiver rcvr, Sender sndr) { try { XmlTextReader textReader = new XmlTextReader("Input.xml"); string xmlStr = ""; HiResTimer t = new HiResTimer(); t.Start(); if (File.Exists("Input.xml")) { XDocument docTemp; string key, msgid; xmlStr = InsertPerformance(hres, msg, clnt, sndr, xmlStr, out docTemp, out key, out msgid); string keyUp; XElement l; UpdatePerformance(msg, clnt, sndr, ref xmlStr, out docTemp, key, ref msgid, out keyUp, out l); //Delete entries docTemp = DeletePerformance(msg, clnt, sndr, ref xmlStr, key, ref msgid, ref keyUp, l); } t.Stop(); clnt.WriteClientTime = t.ElapsedMicroseconds; msg = new Message(); msg.fromUrl = clnt.localUrl; msg.toUrl = clnt.remoteUrl; msg.content = "done"; sndr.sendMessage(msg); // Wait for user to press a key to quit. Util.waitForUser(); // shut down this client's Receiver and Sender by sending close messages rcvr.shutDown(); sndr.shutdown(); Console.Write("\n\n"); } catch (CustomException ex) { throw new CustomException("Error in main of peformance testing", ex); } }
//--------< shutdown receiver and sender >--------------------------- private static void shutdown(Receiver rcvr, Sender sndr) { sndr.shutdown(); rcvr.shutDown(); }
public void shutDown() { rcvr.shutDown(); sndr.shutdown(); }
static void Main(string[] args) { Console.Write("\n starting CommService client"); Console.Write("\n =============================\n"); Console.Title = "Test Executive Client to display the results of remote NoSQL database operations"; TestExec clnt = new TestExec(); clnt.processCommandLine(args); HiResTimer timerTestExec = new HiResTimer(); string localPort = Util.urlPort(clnt.localUrl); string localAddr = Util.urlAddress(clnt.localUrl); Receiver rcvr = new Receiver(localPort, localAddr); rcvr.setTimerFromClient(timerTestExec); clnt.startRcvrService(rcvr); Console.WriteLine("\n The Message request is"); Console.Write("\n =================================\n"); Sender sndr = new Sender(clnt.localUrl); // Sender needs localUrl for start message MessageMaker testExecInput = new MessageMaker(); Message msg = new Message(); string fileName = ".\\TestExecInput.xml"; XDocument xmldoc = XDocument.Load(fileName); var requests = xmldoc.Descendants("Request"); int requestCount = 0, readers = 0, writers = 0, portReader = 0, portWriter = 0, numberOfRequests = 0, numberOfRequestsWriters = 0; string readerDisplay = "", writerDisplay = ""; clnt.getReadersWritersCount(xmldoc, ref readers, ref writers, ref portReader, ref portWriter, ref numberOfRequests, ref readerDisplay, ref writerDisplay, ref numberOfRequestsWriters); timerTestExec.Start(); foreach (var request in requests) { //send each request to construct message and send it to the server clnt.sendEachRequest(request,clnt,msg,sndr,rcvr,testExecInput); Console.Title = "TestExec Client to display the NoSQl database operations: Operations " + (++requestCount) + " are Sent"; } msg.content = "done"; Util.waitForUser(); rcvr.shutDown(); sndr.shutdown(); Console.Write("\n\n"); if(args.Count() != 0) { readers = Convert.ToInt32(args[0]); writers = Convert.ToInt32(args[1]); numberOfRequests = Convert.ToInt32(args[2]); numberOfRequestsWriters = Convert.ToInt32(args[3]); } for(int i = 1; i <= writers; i++) { System.Diagnostics.Process.Start(".\\Client\\bin\\Debug\\Client.exe",""+(portWriter++) + " " + numberOfRequestsWriters + " "+writerDisplay); } for(int j = 1; j <= readers; j++) { System.Diagnostics.Process.Start(".\\Client2\\bin\\Debug\\Client2.exe",(""+(portReader++)+" "+numberOfRequests+" "+readerDisplay)); } }
static void Main(string[] args) { //Thread.Sleep(1500); Console.Write("\n starting CommService writer client"); Console.Write("\n =======================================\n"); Console.Write("\n XML for Reading template is XMLWriter.xml"); Console.Write("\n =======================================\n"); Console.Write("\n If Verbose switch is off, then all logs are logged into WPF Client/GUI."); Console.Write("\n =====================================================================\n"); Console.Write("\n Demonstrating Requirement #4 by sending add/delete/edit/persist/augment messages from writer client to server."); Console.Write("\n Demonstrating Requirement #5 by taking format of request from XML and showing performance on GUI as well as on Console(If logging switch is on)."); Console.Title = "Client #1"; Client clnt = new Client(); clnt.processCommandLine(args); string localPort = Util.urlPort(clnt.localUrl); string localAddr = Util.urlAddress(clnt.localUrl); Receiver rcvr = new Receiver(localPort, localAddr); if (rcvr.StartService()) { rcvr.doService(rcvr.defaultServiceAction()); } Sender sndr = new Sender(clnt.localUrl); // Sender needs localUrl for start message Message msg = new Message(); msg.fromUrl = clnt.localUrl; msg.toUrl = clnt.remoteUrl; Console.Write("\n sender's url is {0}", msg.fromUrl); Console.Write("\n attempting to connect to {0}\n", msg.toUrl); if (!sndr.Connect(msg.toUrl)) { Console.Write("\n could not connect in {0} attempts", sndr.MaxConnectAttempts); sndr.shutdown(); rcvr.shutDown(); return; } clnt.hrt.Start(); rcvr.setTotalMessageSize(clnt.getMessageSize("XMLWriter.xml")); clnt.readMessageTemplates("XMLWriter.xml", sndr); while (true) { if (rcvr.getLastFlag()) { clnt.hrt.Stop(); break; } } ulong latency = clnt.hrt.ElapsedMicroseconds; int lat = Convert.ToInt32(latency); clnt.transportInformation(latency, sndr); msg.content = "done"; sndr.sendMessage(msg); // Wait for user to press a key to quit. // Ensures that client has gotten all server replies. Util.waitForUser(); // shut down this client's Receiver and Sender by sending close messages rcvr.shutDown(); sndr.shutdown(); Console.Write("\n\n"); }
static void Main(string[] args) { Console.Write("\n Starting Writer client"); Console.Write("\n =============================\n"); Console.Title = "Writer"; Client clnt = new Client(); try { clnt.processCommandLine(args); string localPort = Util.urlPort(clnt.localUrl); string localAddr = Util.urlAddress(clnt.localUrl); Receiver rcvr = new Receiver(localPort, localAddr); Sender sndr = new Sender(clnt.localUrl); // Sender needs localUrl for start message if (rcvr.StartService()) { rcvr.doService(rcvr.defaultServiceAction()); } Message msg = new Message(); msg.fromUrl = clnt.localUrl; msg.toUrl = clnt.remoteUrl; Console.Write("\n sender's url is {0}", msg.fromUrl); Console.Write("\n attempting to connect to {0}\n", msg.toUrl); if (!sndr.Connect(msg.toUrl)) { Console.Write("\n could not connect in {0} attempts", sndr.MaxConnectAttempts); sndr.shutdown(); rcvr.shutDown(); return; } clnt.timer.Start(); clnt.readMessageTemplates("XMLWriter.xml"); if (clnt.listOfMsgs.Count() > 0) { rcvr.setTotalMessageSize(clnt.getTotalNumberOfMessages(clnt.listOfMsgs)); clnt.processMessages(clnt.listOfMsgs, sndr); while (true) { if (rcvr.getLastFlag()) { clnt.timer.Stop(); break; } } } ulong latency = clnt.timer.ElapsedMicroseconds; clnt.sendPerformanceMessage(latency, sndr); msg.content = "done"; sndr.sendMessage(msg); // Wait for user to press a key to quit. // Ensures that client has gotten all server replies. Util.waitForUser(); // shut down this client's Receiver and Sender by sending close messages rcvr.shutDown(); sndr.shutdown(); Console.Write("\n\n"); } catch (Exception e) { Console.Write("Invalid XMl file or some exception occured."); Console.Write("Exception : " + e.StackTrace); throw; } }
static void Main(string[] args) { try { HiResTimer hres = new HiResTimer(); //High Resolution Timer Console.Write("\nStarting CommService write client"); Console.Write("\n =============================\n"); Console.Title = "Write Client"; Message msg = new Message(); WriterClient clnt = new WriterClient(); clnt.processCommandLine(args); string localPort = Util.urlPort(clnt.localUrl); string localAddr = Util.urlAddress(clnt.localUrl); Receiver rcvr = new Receiver(localPort, localAddr); Action serviceAction = DefineServiceAction(hres, clnt, rcvr); if (rcvr.StartService()) rcvr.doService(serviceAction); Sender sndr = new Sender(clnt.localUrl); // Sender needs localUrl for start message msg.fromUrl = clnt.localUrl; msg.toUrl = clnt.remoteUrl; Console.Write("Sender's url is {0}", msg.fromUrl); Console.Write("Attempting to connect to {0}\n", msg.toUrl); if (!sndr.Connect(msg.toUrl)) { Console.Write("Could not connect in {0} attempts\n", sndr.MaxConnectAttempts); sndr.shutdown(); rcvr.shutDown(); return; } PerformanceTesting(hres, msg, clnt, rcvr, sndr); } catch (CustomException ex) { throw new CustomException("Error in main of writer client", ex); } }
static void Main(string[] args) { Console.WriteLine(" The intent of the read client is to stress the database with read operations.\n Read operations - Get DBElement with key, Get children of DBElement, Get keys of DBElements with particular pattern."); Console.WriteLine("\n If partial log option is enabled, only a partial part of the response messsage is logged to this console window.(latency and part of result)\n If Partial log option is not enabled, entire result is displayed on the GUI."); Console.WriteLine(" For all requests, latency time for each message is displayed on this window and WPF GUI."); Console.WriteLine(" Once all request messages are received, average latency times are updated in WPF GUI."); Client clnt = new Client(); clnt.processCommandLine(args); bool log_message = true; if (clnt.processCommandLineForPartialLog(args)) { log_message = false; } if (!log_message) { Console.WriteLine(" (Partial log option is enabled for this client)"); } else { Console.WriteLine(" (Partial log option is not enabled for this client.)"); } Console.Write("\n Starting CommService Read client"); Console.Write("\n =============================\n"); string localPort = Util.urlPort(clnt.localUrl); string localAddr = Util.urlAddress(clnt.localUrl); Receiver rcvr = new Receiver(localPort, localAddr); string win_title = "Read Client - " + localPort; Console.Title = win_title; Sender sndr = new Sender(clnt.localUrl); // Sender needs localUrl for start message Action client_receive_action = clnt.define_receive_action(rcvr, log_message, sndr, localPort); if (rcvr.StartService()) { rcvr.doService(client_receive_action); } Message msg = new Message(); msg.fromUrl = clnt.localUrl; msg.toUrl = clnt.remoteUrl; Console.Write("\n sender's url is {0}", msg.fromUrl); Console.Write("\n attempting to connect to {0}\n", msg.toUrl); if (!sndr.Connect(msg.toUrl)) { Console.Write("\n could not connect in {0} attempts", sndr.MaxConnectAttempts); sndr.shutdown(); rcvr.shutDown(); return; } Console.WriteLine("\n *****************************\n Going to read messages present in XML file - Read_Client_XML.xml and send them sequentially to server.\n *****************************"); clnt.send_messages(sndr, msg, "./../../../../SavedXMLFiles/Read_Client_XML.xml", log_message); Thread.Sleep(100); msg.content = "done"; sndr.sendMessage(msg); Util.waitForUser(); rcvr.shutDown(); sndr.shutdown(); Console.Write("\n\n"); }
/// <summary> /// Main program entry /// </summary> /// <param name="args"></param> static void Main(string[] args) { Console.Write("\nStarting CommService write client"); Console.Write("\n =============================\n"); Console.Title = "Project 2 Requirements Testing"; BasicRequirementTest clnt = new BasicRequirementTest(); clnt.processCommandLine(args); string localPort = Util.urlPort(clnt.localUrl); string localAddr = Util.urlAddress(clnt.localUrl); Receiver rcvr = new Receiver(localPort, localAddr); if (rcvr.StartService()) rcvr.doService(rcvr.defaultServiceAction()); Sender sndr = new Sender(clnt.localUrl); // Sender needs localUrl for start message Message msg = new Message(); msg.fromUrl = clnt.localUrl; msg.toUrl = clnt.remoteUrl; Console.Write("\nSender's url is {0} \n", msg.fromUrl); Console.Write("\nAttempting to connect to {0}\n", msg.toUrl); if (!sndr.Connect(msg.toUrl)) { Console.Write("\n could not connect in {0} attempts", sndr.MaxConnectAttempts); sndr.shutdown(); rcvr.shutDown(); return; } string key = ""; clnt.TestR2(ref msg, sndr, ref key); clnt.TestR3(ref msg, sndr); clnt.TestR4(ref msg, sndr, key); clnt.TestR5(ref msg, sndr); clnt.TestR6(ref msg, sndr); clnt.TestR7A(ref msg, sndr); clnt.TestR7B(ref msg, sndr); clnt.TestR7C(ref msg, sndr); clnt.TestR7D(ref msg, sndr); clnt.TestR7E(ref msg, sndr); clnt.TestR8(ref msg, sndr); clnt.TestR9(ref msg, sndr); Util.waitForUser(); // Wait for user to press a key to quit. rcvr.shutDown(); // shut down this client's Receiver and Sender by sending close messages sndr.shutdown(); Console.Write("\n\n"); }
static void Main(string[] args) { HiResTimer hres = new HiResTimer(); //High Resolution Timer Console.Write("\nStarting CommService Read client"); Console.Write("\n =============================\n"); Console.Title = "Read Client"; Message msg = new Message(); ReadClient clnt = new ReadClient(); clnt.processCommandLine(args); string localPort = Util.urlPort(clnt.localUrl); string localAddr = Util.urlAddress(clnt.localUrl); Receiver rcvr = new Receiver(localPort, localAddr); Action serviceAction = DefineServiceAction(hres, clnt, rcvr); if (rcvr.StartService()) rcvr.doService(serviceAction); Sender sndr = new Sender(clnt.localUrl); // Sender needs localUrl for start message msg.fromUrl = clnt.localUrl; msg.toUrl = clnt.remoteUrl; Console.Write("Sender's url is {0}", msg.fromUrl); Console.Write("Attempting to connect to {0}\n", msg.toUrl); if (!sndr.Connect(msg.toUrl)) { Console.Write("Could not connect in {0} attempts\n", sndr.MaxConnectAttempts); sndr.shutdown(); rcvr.shutDown(); return; } msg = PerformanceTest(hres, msg, clnt, sndr); // Wait for user to press a key to quit. Util.waitForUser(); // shut down this client's Receiver and Sender by sending close messages rcvr.shutDown(); sndr.shutdown(); Console.Write("\n\n"); }