Skip to content

alejandrofsevilla/boost-udp-peer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LinuxBuildWorkflow TestsWorkflow

Boost UDP Peer

Asynchronous Boost.Asio UDP Sender/Receiver Peer example.

Requirements

  • C++ 17 compiler
  • CMake 3.22.0
  • Boost 1.74.0
  • GoogleTest 1.11.0

Example

boost::asio::io_context context;
std::thread thread([&context]() { context.run(); });

struct : UdpPeer::Observer {
  void onReceivedFrom(const char *data, size_t size,
                      const boost::asio::ip::udp::endpoint &endpoint) {
    std::cout << "data received from endpoint address "
              << endpoint.address().to_string() << ": ";
    std::cout.write(data, size);
    std::cout << std::endl;
  };
} observer;

UdpPeer receiver{context, observer};
receiver.openSocket(boost::asio::ip::udp::v4());
receiver.bind(1234);
receiver.startReceiving();

UdpPeer sender{context, observer};
sender.openSocket(boost::asio::ip::udp::v4());
std::string msg("example");
sender.sendTo(msg.data(), msg.size(), {boost::asio::ip::udp::v4(), 1234});

Build

  • Install dependencies.
    • linux
    sudo apt-get install libboost-dev
    sudo apt-get install libgtest-dev
    
    • macOs
    brew install boost
    brew install googletest
    
  • Clone repository.
    git clone https://github.com/alejandrofsevilla/boost-udp-peer.git
    cd boost-udp-peer
    
  • Build.
    cmake -S . -B build
    cmake --build build
    
  • Run tests.
    ./build/tests/boost-udp-peer-tests 
    

About

Asynchronous Boost.Asio UDP Sender/Receiver example.

Topics

Resources

Stars

Watchers

Forks

Contributors