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."); } }
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."); } }
/// <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()}"); } }
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); } }