diff options
author | Chanho Park <chanho61.park@samsung.com> | 2014-12-11 18:55:56 +0900 |
---|---|---|
committer | Chanho Park <chanho61.park@samsung.com> | 2014-12-11 18:55:56 +0900 |
commit | 08c1e93fa36a49f49325a07fe91ff92c964c2b6c (patch) | |
tree | 7a7053ceb8874b28ec4b868d4c49b500008a102e /doc/html/boost_asio/example/multicast/receiver.cpp | |
parent | bb4dd8289b351fae6b55e303f189127a394a1edd (diff) | |
download | boost-08c1e93fa36a49f49325a07fe91ff92c964c2b6c.tar.gz boost-08c1e93fa36a49f49325a07fe91ff92c964c2b6c.tar.bz2 boost-08c1e93fa36a49f49325a07fe91ff92c964c2b6c.zip |
Imported Upstream version 1.57.0upstream/1.57.0
Diffstat (limited to 'doc/html/boost_asio/example/multicast/receiver.cpp')
-rw-r--r-- | doc/html/boost_asio/example/multicast/receiver.cpp | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/doc/html/boost_asio/example/multicast/receiver.cpp b/doc/html/boost_asio/example/multicast/receiver.cpp deleted file mode 100644 index 912c8e6eb3..0000000000 --- a/doc/html/boost_asio/example/multicast/receiver.cpp +++ /dev/null @@ -1,93 +0,0 @@ -// -// receiver.cpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#include <iostream> -#include <string> -#include <boost/asio.hpp> -#include "boost/bind.hpp" - -const short multicast_port = 30001; - -class receiver -{ -public: - receiver(boost::asio::io_service& io_service, - const boost::asio::ip::address& listen_address, - const boost::asio::ip::address& multicast_address) - : socket_(io_service) - { - // Create the socket so that multiple may be bound to the same address. - boost::asio::ip::udp::endpoint listen_endpoint( - listen_address, multicast_port); - socket_.open(listen_endpoint.protocol()); - socket_.set_option(boost::asio::ip::udp::socket::reuse_address(true)); - socket_.bind(listen_endpoint); - - // Join the multicast group. - socket_.set_option( - boost::asio::ip::multicast::join_group(multicast_address)); - - socket_.async_receive_from( - boost::asio::buffer(data_, max_length), sender_endpoint_, - boost::bind(&receiver::handle_receive_from, this, - boost::asio::placeholders::error, - boost::asio::placeholders::bytes_transferred)); - } - - void handle_receive_from(const boost::system::error_code& error, - size_t bytes_recvd) - { - if (!error) - { - std::cout.write(data_, bytes_recvd); - std::cout << std::endl; - - socket_.async_receive_from( - boost::asio::buffer(data_, max_length), sender_endpoint_, - boost::bind(&receiver::handle_receive_from, this, - boost::asio::placeholders::error, - boost::asio::placeholders::bytes_transferred)); - } - } - -private: - boost::asio::ip::udp::socket socket_; - boost::asio::ip::udp::endpoint sender_endpoint_; - enum { max_length = 1024 }; - char data_[max_length]; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: receiver <listen_address> <multicast_address>\n"; - std::cerr << " For IPv4, try:\n"; - std::cerr << " receiver 0.0.0.0 239.255.0.1\n"; - std::cerr << " For IPv6, try:\n"; - std::cerr << " receiver 0::0 ff31::8000:1234\n"; - return 1; - } - - boost::asio::io_service io_service; - receiver r(io_service, - boost::asio::ip::address::from_string(argv[1]), - boost::asio::ip::address::from_string(argv[2])); - io_service.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} |