Chciałem uruchomić ZeroConf dla moich aplikacji, tak aby nie trzeba było w sieci lokalnej wpisywać IP
Zadziałał mi taki projekt
https://github.com/jbagg/QtZeroConf.git (w pierwszej wersji postu wkleiłem inny projekt QtZeroConf)
ale nie do końca jestem zadowolony.
ServicePublish.cpp
#include <QCoreApplication>
#include "qzeroconf.h"
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QZeroConf zeroConf;
zeroConf.addServiceTxtRecord("name0", "value0");
zeroConf.startServicePublish("Test", "_test._tcp", "local", 12345);
app.exec();
}
ServiceDiscovery.cpp
#include <QCoreApplication>
#include "qzeroconf.h"
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QZeroConf zeroConf;
zeroConf.startBrowser("_test._tcp");
// zeroConf.startBrowser("_http._tcp");
QObject::connect(&zeroConf, &QZeroConf::serviceAdded, &app, [](QZeroConfService zcs){
qDebug() << "Added service: " << zcs;
qDebug() << "Name:" << zcs->name();
qDebug() << "Type:" << zcs->type();
qDebug() << "Domain:" << zcs->domain();
qDebug() << "Host:" << zcs->host();
qDebug() << "IP:"<<zcs->ip().toString();
qDebug() << "TXT:"<<zcs->txt();
} );
app.exec();
}
na moim komputerze to działa poprawnie
ale inne komputery nie widzą _test._tcp
na moim komputerze działa poprawnie dns-sd -B _test._tcp