public void TestServerExchangeWithOneClient(Int32 dataSize, Int32 repetition, Boolean isClientAsync) { Boolean result = _server.Start(LocalIpAddress, ServerPort1); Assert.IsTrue(result, "Checking that server was successfully opened"); using (TransportClient client = new TransportClient(isClientAsync, LocalIpAddress, ServerPort1)) { client.Open(); ExchangeWithRandomDataAndCheck(client, dataSize, repetition); client.Close(); } _server.Stop(true); }
public void TestScriptRun(Int32 dataSize, Int32 repetition, Boolean isClientAsync) { _server = new FlexibleTcpServer(Script, LocalIpAddress, ServerPort); Boolean result = _server.Start(); Assert.IsTrue(result, "Checking that result is true"); using (TransportClient client = new TransportClient(isClientAsync, LocalIpAddress, ServerPort)) { client.Open(); ExchangeWithRandomDataAndCheck(client, dataSize, repetition); client.Close(); } Assert.DoesNotThrow(() => _server.Stop(true), "Checking that server correctly stops"); }
private void TestScriptRunImpl(Int32 dataSize, Int32 repetition, Boolean isClientAsync, String script, String ipAddress, UInt16 port, CompilerOptions options) { _server = new FlexibleTcpServer(script, ipAddress, port, options); Boolean result = _server.Start(); Assert.IsTrue(result, "Checking that result is true"); using (TransportClient client = new TransportClient(isClientAsync, ipAddress, port)) { client.Open(); ExchangeWithRandomDataAndCheck(client, dataSize, repetition); client.Close(); } Assert.DoesNotThrow(() => _server.Stop(true), "Checking that server correctly stops"); }
public void TestServerExchangeWithSeveralClients(Int32 numberOfClients, Int32 dataSize, Int32 repetition, Boolean isClientAsync) { Boolean result = _server.Start(LocalIpAddress, ServerPort1); Assert.IsTrue(result, "Checking that server was successfully opened"); IList <Task> clientTasks = new Task[numberOfClients]; for (Int32 clientCounter = 0; clientCounter < numberOfClients; clientCounter++) { Task clientTask = new Task(() => { //using (NetworkClient client = new NetworkClient(new IPEndPoint(IPAddress.Parse(LocalIpAddress), ServerPort1), isClientAsync, 2000)) using (TransportClient client = new TransportClient(isClientAsync, LocalIpAddress, ServerPort1, 3500, 1500)) { client.Open(); ManualResetEventSlim openWaitEvent = new ManualResetEventSlim(); while (_server.ConnectedClients != numberOfClients) { openWaitEvent.Reset(); openWaitEvent.Wait(10); } openWaitEvent.Dispose(); // wait 4 getting a chance for client to be ready for IO with server for (Int32 counter = 0; counter < repetition; counter++) { SingleExchangeWithRandomDataAndCheck(client, dataSize, counter); } client.Close(); } }); clientTasks[clientCounter] = clientTask; //clientTask.Start(); } foreach (Task clientTask in clientTasks) { clientTask.Start(); } Task.WaitAll(clientTasks.ToArray(), 200000); foreach (Task clientTask in clientTasks) { clientTask.Dispose(); } _server.Stop(true); }
public void TestEcho(String message) { using (TransportClient client = new TransportClient(true, LocalHost, EchoServerPort, 500, 500)) { while (!_echoServer.IsReady) { ; } Boolean result = client.Open(); Assert.IsTrue(result, "Checking that connection established"); result = client.Write(Encoding.UTF8.GetBytes(message)); Assert.IsTrue(result, "Checking that write was performed successfully"); Byte[] backMessage = new Byte[1024]; Int32 bytesReceived; result = client.Read(backMessage, out bytesReceived); Assert.IsTrue(result, "Checking that read was performed successfully"); Assert.AreEqual(message.Length, bytesReceived, "Checking that we have received equal number of bytes"); client.Close(); } }