Skip to content

Repository files navigation

aware

Device discovery with Boost.Asio.

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>voidAwareHandler(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)));
}
intmain()
{
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();
return0;
}

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

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages