コード例 #1
0
        static void Main(String[] args)
        {
            Console.WriteLine("Server!");

            var consoleLogger = new ConsoleLogger();

            try
            {
                var loggerAdapter = new ConsoleLoggerAdapter(consoleLogger);
                var server        = new DHCP.Server(
                    loggerAdapter,
                    new DHCP.ServerOptions(
                        IPAddress.Parse("192.168.2.1"),
                        IPAddress.Parse("255.255.255.0"),
                        IPAddress.Parse("192.168.2.1"),
                        IPAddress.Parse("8.8.8.8"),
                        IPAddress.Parse("8.8.4.4"),
                        null,
                        false
                        )
                    );
                using (var cts = new System.Threading.CancellationTokenSource())
                {
                    var mainTask = server.RunAsync(cts.Token);
                    while (true)
                    {
                        var keyread = Console.ReadKey();
                        if (keyread.Key == ConsoleKey.Escape)
                        {
                            consoleLogger.Log(Severity.Information, "ShuttingDown", DateTime.Now);
                            cts.Cancel();
                            mainTask.Wait();
                            return;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                consoleLogger.Log(Severity.Fatal, ex.ToString(), DateTime.Now);
                throw;
            }
        }
コード例 #2
0
        static void Main(String[] args)
        {
            Console.WriteLine("Client!");

            var consoleLogger = new ConsoleLogger();

            try
            {
                var loggerAdapter = new ConsoleLoggerAdapter(consoleLogger);
                var client        = new DHCP.Client(
                    loggerAdapter,
                    new DHCP.ClientOptions(IPAddress.Any)
                    );

                using (var cts = new System.Threading.CancellationTokenSource())
                {
                    var mainTask = client.RunAsync(cts.Token);
                    while (true)
                    {
                        if (mainTask.IsFaulted)
                        {
                            throw mainTask.Exception;
                        }
                        var keyread = Console.ReadKey();
                        if (keyread.Key == ConsoleKey.Escape)
                        {
                            consoleLogger.Log(Severity.Information, "ShuttingDown", DateTime.Now);
                            cts.Cancel();
                            mainTask.Wait();
                            return;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                consoleLogger.Log(Severity.Fatal, ex.ToString(), DateTime.Now);
                throw;
            }
        }