diff options
Diffstat (limited to 'client/main.cpp')
-rw-r--r-- | client/main.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/client/main.cpp b/client/main.cpp new file mode 100644 index 0000000..5c26107 --- /dev/null +++ b/client/main.cpp @@ -0,0 +1,38 @@ +#include <cstdio> +#include <cstdlib> +#include <cstdint> +#include <exception> + +#include "rl.h" +#include "sock.h" + +PBSocket* sock; + +int main(int argc, char** argv) { + if (argc < 2) { + printf("usage: %s addr [port]\n", argv[0]); + return EXIT_FAILURE; + } + + // parse arguments + char* addr = argv[1]; + uint16_t port = 9191; + if (argc >= 3) port = atoi(argv[2]); + + sock = new PBSocket(addr, port); + try { + // connect to TCP socket (automatically spawns thread) + sock->sock_connect(); + } catch (const std::exception& e) { + printf("error: %s\n", e.what()); + return EXIT_FAILURE; + } + + // enter main CLI (using GNU readline for comfyness) + int ret = cli_main(); + + delete sock; + + return ret; +} + |