// servicemodel.cpp #include "servicemodel.h" Q_DECLARE_METATYPE(QMdnsEngine::Service) ServiceProvider::ServiceProvider(QObject* parent) : QObject(parent), mHostname(&mServer), mProvider(nullptr) { // Initialize the provider when the ServiceProvider is created } void ServiceProvider::startServiceBroadcast(const QString& serviceName, const QString& serviceType, quint16 port) { if (mProvider) { delete mProvider; mProvider = nullptr; } // Set up the service with the specified name, type, and port mService.setName(serviceName.toUtf8()); mService.setType(serviceType.toUtf8()); mService.setPort(port); // Create a new provider for this service mProvider = new QMdnsEngine::Provider(&mServer, &mHostname, this); mProvider->update(mService); qDebug() << "mDNS service broadcast started:" << serviceName << serviceType << "on port" << port; } void ServiceProvider::stopServiceBroadcast() { if (mProvider) { delete mProvider; mProvider = nullptr; qDebug() << "mDNS service broadcast stopped."; } }