Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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");
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
 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();
     }
 }