Урок 3. Сетевые архитектуры. TCP-сокеты #3
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue