From: Stephen Seo Date: Mon, 16 Sep 2019 02:52:03 +0000 (+0900) Subject: Add command parsing for NetworkTest X-Git-Tag: 1.0~160 X-Git-Url: https://git.seodisparate.com/stephenseo/static/git-favicon.png?a=commitdiff_plain;h=d159bd84b7dffa109a292c0989c5b784b3bfafd0;p=UDPConnection Add command parsing for NetworkTest --- diff --git a/cpp_impl/src/test/UDPC_NetworkTest.cpp b/cpp_impl/src/test/UDPC_NetworkTest.cpp index b2f9976..04b2f6f 100644 --- a/cpp_impl/src/test/UDPC_NetworkTest.cpp +++ b/cpp_impl/src/test/UDPC_NetworkTest.cpp @@ -1,2 +1,54 @@ -int main() { +#include +#include +#include + +#include + +void usage() { + puts("[-c | -s] - client or server (default server)"); + puts("-ll - listen addr"); + puts("-lp - listen port"); + puts("-cl - connection addr (client only)"); + puts("-cp - connection port (client only)"); +} + +int main(int argc, char **argv) { + --argc; ++argv; + if(argc == 0) { + usage(); + return 0; + } + + bool isClient = false; + const char *listenAddr = nullptr; + const char *listenPort = nullptr; + const char *connectionAddr = nullptr; + const char *connectionPort = nullptr; + while(argc > 0) { + if(std::strcmp(argv[0], "-c") == 0) { + isClient = true; + } else if(std::strcmp(argv[0], "-s") == 0) { + isClient = false; + } else if(std::strcmp(argv[0], "-ll") == 0 && argc > 1) { + --argc; ++argv; + listenAddr = argv[0]; + } else if(std::strcmp(argv[0], "-lp") == 0 && argc > 1) { + --argc; ++argv; + listenPort = argv[0]; + } else if(std::strcmp(argv[0], "-cl") == 0 && argc > 1) { + --argc; ++argv; + connectionAddr = argv[0]; + } else if(std::strcmp(argv[0], "-cp") == 0 && argc > 1) { + --argc; ++argv; + connectionPort = argv[0]; + } else { + printf("ERROR: invalid argument \"%s\"\n", argv[0]); + usage(); + return 1; + } + + --argc; ++argv; + } + + return 0; }