Добавлены режимы запуска приложения

This commit is contained in:
Alexander Zhirov 2022-09-07 16:43:05 +03:00
parent 402c3f865f
commit 4a5943ce9f
1 changed files with 33 additions and 10 deletions

View File

@ -46,7 +46,12 @@ void client(const int port, const std::string &host)
int main(int argc, char *argv[]) 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); hub.readArguments(argc, argv);
auto optionPort = hub.getOption('p'); auto optionPort = hub.getOption('p');
@ -55,18 +60,36 @@ int main(int argc, char *argv[])
std::cerr << "Порт не был установлен!" << std::endl; std::cerr << "Порт не был установлен!" << std::endl;
exit(EXIT_FAILURE); 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); exit(EXIT_FAILURE);
} }
int port = std::stoi(optionPort.getValues()[0]);
std::string host = optionHost.getValues()[0];
server(port);
// client(port, host);
return 0; return 0;
} }