public bool Start() { // Create a new UDP echo server if (this.ServerType == ServerType.UDP) { this.m_udpServer = new UpdSyslogServer(this.ListenAddress, this.Port, MessageHandler.CreateInstance(123, this.Port)); } // Create a new TCP Syslog server if (this.ServerType == ServerType.TCP) { this.m_tcpServer = new TcpSyslogServer(this.ListenAddress, this.Port, MessageHandler.CreateInstance(123, this.Port)); } if (this.ServerType == ServerType.SSL_TLS) { if (this.Certificate != null && this.Protocol != System.Security.Authentication.SslProtocols.None) { // Create and prepare a new SSL server context NetCoreServer.SslContext context = new NetCoreServer.SslContext(this.Protocol, this.Certificate); // Create a new SSL Syslog server this.m_tlsServer = new TlsSyslogServer(context, this.ListenAddress, this.Port, MessageHandler.CreateInstance(123, this.Port)); } } if (this.m_udpServer == null && this.m_tcpServer == null && this.m_tlsServer == null) { // Can't start the server System.Console.Write("Server NOT starting..."); return(false); } // Start the server System.Console.Write("Server starting..."); if (this.m_udpServer != null) { this.m_udpServer.Start(); } if (this.m_tcpServer != null) { this.m_tcpServer.Start(); } if (this.m_tlsServer != null) { this.m_tlsServer.Start(); } System.Console.WriteLine("Done!"); return(true); }
} // End Sub OnError public static void Test() { // TCP server port int port = 1468; System.Console.WriteLine($"TCP server port: {port}"); System.Console.WriteLine(); // Create a new TCP Syslog server TcpSyslogServer server = new TcpSyslogServer(System.Net.IPAddress.Any, port, MessageHandler.CreateInstance(123, port)); // Start the server System.Console.Write("Server starting..."); server.Start(); System.Console.WriteLine("Done!"); System.Console.WriteLine("Press Enter to stop the server or '!' to restart the server..."); // Perform text input for (; ;) { string line = System.Console.ReadLine(); if (string.IsNullOrEmpty(line)) { break; } // Restart the server if (line == "!") { System.Console.Write("Server restarting..."); server.Restart(); System.Console.WriteLine("Done!"); continue; } // End if (line == "!") // Multicast admin message to all sessions line = "(admin) " + line; server.Multicast(line); } // Next // Stop the server System.Console.Write("Server stopping..."); server.Stop(); System.Console.WriteLine("Done!"); } // End Sub Test
} // End Constructor public void Start(NetworkProtocol protocol, System.Net.IPAddress address, int port) { switch (protocol) { case NetworkProtocol.TCP: TcpSyslogServer.Test(); break; case NetworkProtocol.TLS: TlsSyslogServer.Test(); break; default: UpdSyslogServer.Test(); break; } } // End Sub Start