GithubHelp home page GithubHelp logo

scientist-st / qtzeroconf Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jbagg/qtzeroconf

0.0 1.0 0.0 259 KB

Qt wrapper class for ZeroConf libraries across various platforms.

License: Other

C 94.95% Objective-C 0.21% C++ 4.52% QMake 0.33%

qtzeroconf's Introduction

QZeroConf is a Qt wrapper class for ZeroConf libraries across various platforms.

QZeroConf wraps avahi-client on Linux, avahi-core on Android, and dnssd on Mac, iOS and Windows.

Building

QZeroConf can be built directly into your project if your project is LGPL3 compatible. If your project is closed source, you can build QZeroConf as a dynamic library and link against it.

Building into your project

  1. Clone or download QZeroConf. If you download, unzip.

  2. Copy the qtzeroconf directory to be under your project's directory.

  3. Include the qtzeroconf.pri file in your projects .pro file

    include(qtzeroconf/qtzeroconf.pri)

Compiling as a dynamic library

  1. Clone or download QZeroConf. If you download, unzip.
  2. Enter the qtzeroconf directory, run qmake and then make.

API

Service Publishing

(See the example included with the source)

  1. Include header
#include "qzeroconf.h"
  1. Create an instance of QZeroConf
QZeroConf zeroConf;

It is recommend, but not required, that you connect a slot to QZeroConf's error() signal and servicePublished() signal.

  1. Call startServicePublish() with the name, type, domain and port of your service.
zeroConf.startServicePublish("Test", "_test._tcp", "local", 12345);

QZeroConf will emit servicePublished() if successful, or the error() signal if registration fails.

Service publishing can be stopped by calling stopServicePublish(). Only one service can be published per instance of QZeroConf.

Service Discovery

(See the example included with the source)

  1. Include header
#include "qzeroconf.h"
  1. Create an instance of QZeroConf
QZeroConf zeroConf;

It is recommend, but not required, that you connect a slot to QZeroConf's error() signal.

  1. Connect a slot to QZeroConf's serviceAdded() signal. When serviceAdded() is emitted, it passes a pointer to the QZeroConfService recently discovered.

  2. Optionally connect a slot to QZeroConf's serviceRemoved() signal to received status when the service is unpublished. ServiceRemoved() passes a pointer to the service being removed. Do not make delayed connections with ServiceRemoved() signal.

  3. Call startBrowser() with the type of the service to browse for and optionally the protocol to use.

startBrowser("_test._tcp");

If you are browsing for services published using both ipv4 and ipv6 ( QAbstractSocket::AnyIPProtocol) you should also connect a slot to QzeroConf's serviceUpdated() signal. When the IP address of the first protocol is resolved, serviceAdded() is emitted, when the IP address of the second protocol is resolved, serviceUpdated() is emitted.

Only one browser can be in use per instance of QzeroConf.

Build Dependencies

Qt5

On Linux, avahi-client-dev and avahi-common-dev

qtzeroconf's People

Contributors

jbagg avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.