Skip to content

breese/aware

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

aware

Device discovery with Boost.Asio.

Notice that this project is continued in trial.aware.

Introduction

The aware module discovers devices using ZeroConf.

An example of the use of aware:

#include <iostream>
#include <boost/bind.hpp>
#include <boost/ref.hpp>
#include <boost/asio/io_service.hpp>
#include <aware/contact.hpp>
#include <aware/avahi/monitor_socket.hpp>

void AwareHandler(const boost::system::error_code& error,
                  aware::contact& contact,
                  aware::monitor_socket& socket)
{
    // The device described by contact has joined or left the network
    std::cout << contact.type() << " = " << contact.endpoint() << std::endl;
    // Listen for next event
    socket.async_listen(contact,
                        boost::bind(AwareHandler,
                                    _1,
                                    boost::ref(contact),
                                    boost::ref(socket)));
}

int main()
{
    boost::asio::io_service io;
    aware::avahi::monitor_socket socket(io);
    // Listen for "_announce._tcp" announcements
    aware::contact contact = aware::contact().type("announce");
    socket.async_listen(contact,
                        boost::bind(AwareHandler,
                                    _1,
                                    boost::ref(contact),
                                    boost::ref(socket)));
    io.run();
    return 0;
}

Building aware with Avahi backend

  1. Make sure CMake is installed.

  2. Make sure that the libavahi-client-dev package is installed.

  3. Checkout the repository.

  4. Build the example

    cmake .
    make
  5. Run the examples

    bin/avahi_monitor

    and from another shell:

    bin/avahi_announce

About

Device discovery

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages