aboutsummaryrefslogtreecommitdiffstats
path: root/examples/websockets/echoclient/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/websockets/echoclient/main.cpp')
-rw-r--r--examples/websockets/echoclient/main.cpp28
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();