diff options
Diffstat (limited to 'examples/websockets/echoclient/main.cpp')
-rw-r--r-- | examples/websockets/echoclient/main.cpp | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/examples/websockets/echoclient/main.cpp b/examples/websockets/echoclient/main.cpp index 5841610..999df79 100644 --- a/examples/websockets/echoclient/main.cpp +++ b/examples/websockets/echoclient/main.cpp @@ -7,19 +7,41 @@ int main(int argc, char *argv[]) { + using namespace Qt::Literals::StringLiterals; QCoreApplication a(argc, argv); QCommandLineParser parser; parser.setApplicationDescription("QtWebSockets example: echoclient"); parser.addHelpOption(); - QCommandLineOption dbgOption(QStringList() << "d" << "debug", + QCommandLineOption dbgOption( + QStringList{ u"d"_s, u"debug"_s }, QCoreApplication::translate("main", "Debug output [default: off].")); parser.addOption(dbgOption); + QCommandLineOption hostnameOption( + QStringList{ u"n"_s, u"hostname"_s }, + QCoreApplication::translate("main", "Hostname [default: localhost]."), "hostname", + "localhost"); + parser.addOption(hostnameOption); + QCommandLineOption portOption(QStringList{ u"p"_s, u"port"_s }, + QCoreApplication::translate("main", "Port [default: 1234]."), + "port", "1234"); + parser.addOption(portOption); + parser.process(a); bool debug = parser.isSet(dbgOption); - - EchoClient client(QUrl(QStringLiteral("ws://localhost:1234")), debug); + bool ok = true; + int port = parser.value(portOption).toInt(&ok); + if (!ok || port < 1 || port > 65535) { + qWarning("Port invalid, must be a number between 1 and 65535\n%s", + qPrintable(parser.helpText())); + return 1; + } + QUrl url; + url.setScheme(u"ws"_s); + url.setHost(parser.value(hostnameOption)); + url.setPort(port); + EchoClient client(url, debug); QObject::connect(&client, &EchoClient::closed, &a, &QCoreApplication::quit); return a.exec(); |