From 4a5943ce9f7b4738558e9d22d0a8ebac3b9ee46f Mon Sep 17 00:00:00 2001 From: Alexander Zhirov Date: Wed, 7 Sep 2022 16:43:05 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=80=D0=B5=D0=B6=D0=B8=D0=BC=D1=8B=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B0=20=D0=BF=D1=80=D0=B8=D0=BB?= =?UTF-8?q?=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson_03/main.cpp | 43 +++++++++++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/lesson_03/main.cpp b/lesson_03/main.cpp index 370ad31..04d2d5b 100644 --- a/lesson_03/main.cpp +++ b/lesson_03/main.cpp @@ -46,7 +46,12 @@ void client(const int port, const std::string &host) int main(int argc, char *argv[]) { - ap::Hub hub({{ "port", 'p', ap::REQUIRED }, { "host", 'h', ap::REQUIRED }}); + ap::Hub hub({ + { "port", 'p', ap::REQUIRED }, + { "host", 'h', ap::OPTIONAL }, + { "server", 's', ap::NO }, + { "client", 'c', ap::NO } + }); hub.readArguments(argc, argv); auto optionPort = hub.getOption('p'); @@ -55,18 +60,36 @@ int main(int argc, char *argv[]) std::cerr << "Порт не был установлен!" << std::endl; exit(EXIT_FAILURE); } - auto optionHost = hub.getOption('h'); - if (!optionHost.isSet()) + + int port = std::stoi(optionPort.getValues()[0]); + + auto optionClient = hub.getOption('c'); + auto optionServer = hub.getOption('s'); + + if (optionClient.isSet()) { - std::cerr << "Адрес не был установлен!" << std::endl; + auto optionHost = hub.getOption('h'); + if (!optionHost.isSet()) + { + std::cerr << "Адрес не был установлен!" << std::endl; + exit(EXIT_FAILURE); + } + + std::string host = optionHost.getValues()[0]; + + client(port, host); + } + else if (optionServer.isSet()) + server(port); + else + { + std::cerr << "Необходимо установить режим запуска:" << std::endl + << "\t-c\t--client\tЗапуск в режиме клиента" << std::endl + << "\t-s\t--server\tЗапуск в режиме сервера" << std::endl + << "\t-h\t--host\t\tУказать IP-адрес сервера" << std::endl + << "\t-p\t--port\t\tУказать порт" << std::endl; exit(EXIT_FAILURE); } - int port = std::stoi(optionPort.getValues()[0]); - std::string host = optionHost.getValues()[0]; - - server(port); -// client(port, host); - return 0; }