簡単なUDP受信アプリケーションのIPアドレスとポートをコマンドラインで設定できるようにしました。
-aまたは--addressでIPアドレスを、-pまたは--portでポート番号を設定できます。
何も設定しない場合は、デフォルト値(IPアドレス:0.0.0.0, ポート番号:45454)が使われます。
また、addHelpOption()で、-hしたときのヘルプを勝手に作ってくれます。
今回は実装していないですが、不正なオプション指定も簡単に検出できます。
#include <QCoreApplication>
#include <QtCore/QCommandLineParser>
#include <QtCore/QDebug>
int main(int argc, char *argv[]) {
QCoreApplication app(argc, argv);
QCoreApplication::setApplicationName("udp_receiver");
QCoreApplication::setApplicationVersion("1.0");
QCommandLineParser parser;
parser.setApplicationDescription("Receive UDP datagram.");
parser.addHelpOption();
parser.addVersionOption();
parser.addOptions({
{{"a", "address"},
QCoreApplication::translate("main", "Host address. Default: 0.0.0.0"),
QCoreApplication::translate("main", "address"),
QCoreApplication::translate("main", "0.0.0.0")},
{{"p", "port"},
QCoreApplication::translate("main", "Port. Default: 45454"),
QCoreApplication::translate("main", "port"),
QCoreApplication::translate("main", "45454")}
});
parser.process(app);
const QString addr = parser.value("address");
const quint16 port = parser.value("port").toUInt();
qDebug() << "UDP receiver starts" << addr << "(" << port << ")";
// 以下、UDPレシーバのコードは省略
return app.exec();
}
./udp_receiver -h
Usage: ./udp_receiver/release/udp_receiver [options]
Receive UDP datagram.
Options:
-h, --help Displays this help.
-v, --version Displays version information.
-a, --address <address> Host address. Default: 0.0.0.0
-p, --port <port> Port. Default: 45454
./udp_receiver
UDP receiver starts "0.0.0.0" ( 45454 ) #デフォルト値
./udp_receiver -a 192.168.1.3 -p 8888
UDP receiver starts "192.168.1.3" ( 8888 ) #設定値
便利です♪