From be23f56867da3019527e0a1c4fa95d8a71055980 Mon Sep 17 00:00:00 2001 From: "Sharikov P.P." Date: Fri, 16 Jan 2026 10:16:24 +0700 Subject: [PATCH] fix error with IP address in server --- f-cln/Properties/launchSettings.json | 2 +- f-srv/Program.cs | 35 ++++++++++++++++++++++++++-- f-srv/Properties/launchSettings.json | 2 +- 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/f-cln/Properties/launchSettings.json b/f-cln/Properties/launchSettings.json index 0df3bdc..0826aa4 100644 --- a/f-cln/Properties/launchSettings.json +++ b/f-cln/Properties/launchSettings.json @@ -2,7 +2,7 @@ "profiles": { "f-cln": { "commandName": "Project", - "commandLineArgs": "-p 3113" + "commandLineArgs": "--port 3113 -i 172.22.176.1" } } } \ No newline at end of file diff --git a/f-srv/Program.cs b/f-srv/Program.cs index acb7d7a..71f5612 100644 --- a/f-srv/Program.cs +++ b/f-srv/Program.cs @@ -20,13 +20,44 @@ namespace f_srv Option ipOption = new("address", new[] { "--ip", "-i" }) { Description = "IP адрес для прослушивания (по умолчанию: все интерфейсы)", - DefaultValueFactory = parseResult => IPAddress.Any + DefaultValueFactory = parseResult => IPAddress.Any, + CustomParser = result => + { + if (result.Tokens.Count != 1) + { + result.AddError("--address requires one argument"); + return IPAddress.Any; + } + + return IPAddress.Parse(result.Tokens.Single().Value); + } }; Option portOption = new("port", new[] { "--port", "-p" }) { Description = "Порт для прослушивания (по умолчанию: 1771)", - DefaultValueFactory = parseResult => 1771 + DefaultValueFactory = parseResult => 1771, + CustomParser = result => + { + if (!result.Tokens.Any()) + { + return 1771; + } + + if (int.TryParse(result.Tokens.Single().Value, out var delay)) + { + if (delay < 1) + { + result.AddError("Must be greater than 0"); + } + return delay; + } + else + { + result.AddError("Not an int."); + return 0; // Ignored. + } + } }; var rootCommand = new RootCommand("Сервер для получения строк и отправки их в обратном порядке") diff --git a/f-srv/Properties/launchSettings.json b/f-srv/Properties/launchSettings.json index 6fd7ea1..006574a 100644 --- a/f-srv/Properties/launchSettings.json +++ b/f-srv/Properties/launchSettings.json @@ -2,7 +2,7 @@ "profiles": { "f-srv": { "commandName": "Project", - "commandLineArgs": "--port 3113" + "commandLineArgs": "--port 3113 -i 192.168.15.128" } } } \ No newline at end of file