예제 #1
0
        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);
        }
예제 #2
0
        } // 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
예제 #3
0
        } // 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