Esempio n. 1
0
        public void TFBasicLineTimeout()
        {
            NamedPortEventRaiser.VirtualPortEvent += VirtualPortEventRaiser_VirtualPortEvent;

            try
            {
                keepServerRunning = true;
                socketServer      = SocketServerHelper.Start(tcpPort);
                Task.Delay(TimeSpan.FromSeconds(1)).Wait();
                using (var tcpIpClient = new VaiTcpIpClient())
                {
                    var ipAddress = "127.0.0.1";
                    Assert.True(tcpIpClient.ConnectAsync(IPAddress.Parse(ipAddress), tcpPort).Result);

                    int timeoutLenSec = 2;
                    Task.Run(() => CheckForClientsAsync(timeoutLenSec));

                    // wait 1 extra second to be sure
                    Task.Delay(TimeSpan.FromSeconds((timeoutLenSec + 1))).Wait();

                    Assert.True(timeoutHasTakenPlace);
                }
            }
            finally
            {
                keepServerRunning = false;
                SocketServerHelper.Stop(cancellation, socketServer);
                Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + "\tTest Finished.");
            }
        }
Esempio n. 2
0
        public void TestListener()
        {
            const int tcpPort = 10099;

            NamedPortEventRaiser.VirtualPortEvent += VirtualPortEventRaiser_VirtualPortEvent;
            Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + "\tTest Started...");
            TcpListener socketServer = null;

            cancellation.Add(tcpPort, new CancellationTokenSource());
            try
            {
                receivedMsgCount.Add(tcpPort, 0);
                keepServerRunning.Add(tcpPort, true);
                socketServer = SocketServerHelper.Start(tcpPort);

                Task.Run(() => CheckForClientsAsync(socketServer, tcpPort));
                Task.Run(() => SendTestDataWithNewTcpClientAsync(tcpPort));

                while (receivedMsgCount[tcpPort] < numSentMessages)
                {
                    Task.Delay(TimeSpan.FromMilliseconds(100)).Wait();
                }

                Assert.True(receivedMsgCount[tcpPort] == numSentMessages);
            }
            finally
            {
                receivedMsgCount.Remove(tcpPort);
                keepServerRunning[tcpPort] = false;
                SocketServerHelper.Stop(cancellation[tcpPort], socketServer);
                cancellation.Remove(tcpPort);
                Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + "\tTest Finished.");
            }
        }
Esempio n. 3
0
 /// <summary>
 /// 开启Socket服务
 /// </summary>
 public void StartServer()
 {
     try
     {
         if (appServer == null && !IsStarted)
         {
             var socketServerInfo = SocketServerContract.SocketServerInfos.FirstOrDefault();
             if (Equals(socketServerInfo, null))
             {
                 Logger.Info($"CommunicationService.StartServer,未找到SocketServerInfo的信息");
                 return;
             }
             //最大客户端数预留,将来根据客户端数量授权收费。
             appServer               = new SocketServerHelper(socketServerInfo.ServerIp, socketServerInfo.ServerPort, socketServerInfo.MaxConnectionNumber);
             connectedCientSession   = new List <Session>(socketServerInfo.MaxConnectionNumber);
             appServer.Connected    += OnConnected;
             appServer.Closed       += OnClosed;
             appServer.DataReceived += OnReceived;
             IsStarted               = appServer.Start();
             string result = IsStarted ? "成功!" : "失败!";
             Logger.Info($"开启Socket服务{result}");
         }
     }
     catch (Exception ex)
     {
         Logger.Error($"开启Socket服务异常! + \n {ex.ToString()}");
     }
 }
Esempio n. 4
0
        public void WriteToSocketServer()
        {
            const int   tcpPort      = 10097;
            TcpListener socketServer = null;

            try
            {
                socketServer = SocketServerHelper.Start(tcpPort);
                var ipAddress = "127.0.0.1";

                SimpleFileWriter.WriteLineToEventFile(DirectoryName.Diag, "Testing.");
                for (var testRun = 0; testRun < 2; testRun++)
                {
                    using (var tcpIpClient = new VaiTcpIpClient())
                    {
                        Assert.True(tcpIpClient.ConnectAsync(IPAddress.Parse(ipAddress), tcpPort).Result);
                        for (var i = 0; i < numSentMessages; i++)
                        {
                            var message = "Sample data " + i;
                            Assert.True(tcpIpClient.Write(message));
                            Task.Delay(TimeSpan.FromMilliseconds(100)).Wait();
                        }
                        Assert.True(tcpIpClient.Disconnect());
                    }
                }
            }
            finally
            {
                SocketServerHelper.Stop(null, socketServer);
            }
        }