summaryrefslogtreecommitdiff
path: root/doc/html/boost_asio/example/cpp11/echo
diff options
context:
space:
mode:
Diffstat (limited to 'doc/html/boost_asio/example/cpp11/echo')
-rw-r--r--doc/html/boost_asio/example/cpp11/echo/async_tcp_echo_server.cpp116
-rw-r--r--doc/html/boost_asio/example/cpp11/echo/async_udp_echo_server.cpp82
-rw-r--r--doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_client.cpp55
-rw-r--r--doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_server.cpp76
-rw-r--r--doc/html/boost_asio/example/cpp11/echo/blocking_udp_echo_client.cpp57
-rw-r--r--doc/html/boost_asio/example/cpp11/echo/blocking_udp_echo_server.cpp52
6 files changed, 0 insertions, 438 deletions
diff --git a/doc/html/boost_asio/example/cpp11/echo/async_tcp_echo_server.cpp b/doc/html/boost_asio/example/cpp11/echo/async_tcp_echo_server.cpp
deleted file mode 100644
index 2f679e245e..0000000000
--- a/doc/html/boost_asio/example/cpp11/echo/async_tcp_echo_server.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-//
-// async_tcp_echo_server.cpp
-// ~~~~~~~~~~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2015 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 <cstdlib>
-#include <iostream>
-#include <memory>
-#include <utility>
-#include <boost/asio.hpp>
-
-using boost::asio::ip::tcp;
-
-class session
- : public std::enable_shared_from_this<session>
-{
-public:
- session(tcp::socket socket)
- : socket_(std::move(socket))
- {
- }
-
- void start()
- {
- do_read();
- }
-
-private:
- void do_read()
- {
- auto self(shared_from_this());
- socket_.async_read_some(boost::asio::buffer(data_, max_length),
- [this, self](boost::system::error_code ec, std::size_t length)
- {
- if (!ec)
- {
- do_write(length);
- }
- });
- }
-
- void do_write(std::size_t length)
- {
- auto self(shared_from_this());
- boost::asio::async_write(socket_, boost::asio::buffer(data_, length),
- [this, self](boost::system::error_code ec, std::size_t /*length*/)
- {
- if (!ec)
- {
- do_read();
- }
- });
- }
-
- tcp::socket socket_;
- enum { max_length = 1024 };
- char data_[max_length];
-};
-
-class server
-{
-public:
- server(boost::asio::io_service& io_service, short port)
- : acceptor_(io_service, tcp::endpoint(tcp::v4(), port)),
- socket_(io_service)
- {
- do_accept();
- }
-
-private:
- void do_accept()
- {
- acceptor_.async_accept(socket_,
- [this](boost::system::error_code ec)
- {
- if (!ec)
- {
- std::make_shared<session>(std::move(socket_))->start();
- }
-
- do_accept();
- });
- }
-
- tcp::acceptor acceptor_;
- tcp::socket socket_;
-};
-
-int main(int argc, char* argv[])
-{
- try
- {
- if (argc != 2)
- {
- std::cerr << "Usage: async_tcp_echo_server <port>\n";
- return 1;
- }
-
- boost::asio::io_service io_service;
-
- server s(io_service, std::atoi(argv[1]));
-
- io_service.run();
- }
- catch (std::exception& e)
- {
- std::cerr << "Exception: " << e.what() << "\n";
- }
-
- return 0;
-}
diff --git a/doc/html/boost_asio/example/cpp11/echo/async_udp_echo_server.cpp b/doc/html/boost_asio/example/cpp11/echo/async_udp_echo_server.cpp
deleted file mode 100644
index c457d6d400..0000000000
--- a/doc/html/boost_asio/example/cpp11/echo/async_udp_echo_server.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-//
-// async_udp_echo_server.cpp
-// ~~~~~~~~~~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2015 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 <cstdlib>
-#include <iostream>
-#include <boost/asio.hpp>
-
-using boost::asio::ip::udp;
-
-class server
-{
-public:
- server(boost::asio::io_service& io_service, short port)
- : socket_(io_service, udp::endpoint(udp::v4(), port))
- {
- do_receive();
- }
-
- void do_receive()
- {
- socket_.async_receive_from(
- boost::asio::buffer(data_, max_length), sender_endpoint_,
- [this](boost::system::error_code ec, std::size_t bytes_recvd)
- {
- if (!ec && bytes_recvd > 0)
- {
- do_send(bytes_recvd);
- }
- else
- {
- do_receive();
- }
- });
- }
-
- void do_send(std::size_t length)
- {
- socket_.async_send_to(
- boost::asio::buffer(data_, length), sender_endpoint_,
- [this](boost::system::error_code /*ec*/, std::size_t /*bytes_sent*/)
- {
- do_receive();
- });
- }
-
-private:
- udp::socket socket_;
- udp::endpoint sender_endpoint_;
- enum { max_length = 1024 };
- char data_[max_length];
-};
-
-int main(int argc, char* argv[])
-{
- try
- {
- if (argc != 2)
- {
- std::cerr << "Usage: async_udp_echo_server <port>\n";
- return 1;
- }
-
- boost::asio::io_service io_service;
-
- server s(io_service, std::atoi(argv[1]));
-
- io_service.run();
- }
- catch (std::exception& e)
- {
- std::cerr << "Exception: " << e.what() << "\n";
- }
-
- return 0;
-}
diff --git a/doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_client.cpp b/doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_client.cpp
deleted file mode 100644
index db56bf5608..0000000000
--- a/doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_client.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//
-// blocking_tcp_echo_client.cpp
-// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2015 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 <cstdlib>
-#include <cstring>
-#include <iostream>
-#include <boost/asio.hpp>
-
-using boost::asio::ip::tcp;
-
-enum { max_length = 1024 };
-
-int main(int argc, char* argv[])
-{
- try
- {
- if (argc != 3)
- {
- std::cerr << "Usage: blocking_tcp_echo_client <host> <port>\n";
- return 1;
- }
-
- boost::asio::io_service io_service;
-
- tcp::socket s(io_service);
- tcp::resolver resolver(io_service);
- boost::asio::connect(s, resolver.resolve({argv[1], argv[2]}));
-
- std::cout << "Enter message: ";
- char request[max_length];
- std::cin.getline(request, max_length);
- size_t request_length = std::strlen(request);
- boost::asio::write(s, boost::asio::buffer(request, request_length));
-
- char reply[max_length];
- size_t reply_length = boost::asio::read(s,
- boost::asio::buffer(reply, request_length));
- std::cout << "Reply is: ";
- std::cout.write(reply, reply_length);
- std::cout << "\n";
- }
- catch (std::exception& e)
- {
- std::cerr << "Exception: " << e.what() << "\n";
- }
-
- return 0;
-}
diff --git a/doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_server.cpp b/doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_server.cpp
deleted file mode 100644
index 31d6bee055..0000000000
--- a/doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_server.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// blocking_tcp_echo_server.cpp
-// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2015 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 <cstdlib>
-#include <iostream>
-#include <thread>
-#include <utility>
-#include <boost/asio.hpp>
-
-using boost::asio::ip::tcp;
-
-const int max_length = 1024;
-
-void session(tcp::socket sock)
-{
- try
- {
- for (;;)
- {
- char data[max_length];
-
- boost::system::error_code error;
- size_t length = sock.read_some(boost::asio::buffer(data), error);
- if (error == boost::asio::error::eof)
- break; // Connection closed cleanly by peer.
- else if (error)
- throw boost::system::system_error(error); // Some other error.
-
- boost::asio::write(sock, boost::asio::buffer(data, length));
- }
- }
- catch (std::exception& e)
- {
- std::cerr << "Exception in thread: " << e.what() << "\n";
- }
-}
-
-void server(boost::asio::io_service& io_service, unsigned short port)
-{
- tcp::acceptor a(io_service, tcp::endpoint(tcp::v4(), port));
- for (;;)
- {
- tcp::socket sock(io_service);
- a.accept(sock);
- std::thread(session, std::move(sock)).detach();
- }
-}
-
-int main(int argc, char* argv[])
-{
- try
- {
- if (argc != 2)
- {
- std::cerr << "Usage: blocking_tcp_echo_server <port>\n";
- return 1;
- }
-
- boost::asio::io_service io_service;
-
- server(io_service, std::atoi(argv[1]));
- }
- catch (std::exception& e)
- {
- std::cerr << "Exception: " << e.what() << "\n";
- }
-
- return 0;
-}
diff --git a/doc/html/boost_asio/example/cpp11/echo/blocking_udp_echo_client.cpp b/doc/html/boost_asio/example/cpp11/echo/blocking_udp_echo_client.cpp
deleted file mode 100644
index 81de8d341b..0000000000
--- a/doc/html/boost_asio/example/cpp11/echo/blocking_udp_echo_client.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-//
-// blocking_udp_echo_client.cpp
-// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2015 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 <cstdlib>
-#include <cstring>
-#include <iostream>
-#include <boost/asio.hpp>
-
-using boost::asio::ip::udp;
-
-enum { max_length = 1024 };
-
-int main(int argc, char* argv[])
-{
- try
- {
- if (argc != 3)
- {
- std::cerr << "Usage: blocking_udp_echo_client <host> <port>\n";
- return 1;
- }
-
- boost::asio::io_service io_service;
-
- udp::socket s(io_service, udp::endpoint(udp::v4(), 0));
-
- udp::resolver resolver(io_service);
- udp::endpoint endpoint = *resolver.resolve({udp::v4(), argv[1], argv[2]});
-
- std::cout << "Enter message: ";
- char request[max_length];
- std::cin.getline(request, max_length);
- size_t request_length = std::strlen(request);
- s.send_to(boost::asio::buffer(request, request_length), endpoint);
-
- char reply[max_length];
- udp::endpoint sender_endpoint;
- size_t reply_length = s.receive_from(
- boost::asio::buffer(reply, max_length), sender_endpoint);
- std::cout << "Reply is: ";
- std::cout.write(reply, reply_length);
- std::cout << "\n";
- }
- catch (std::exception& e)
- {
- std::cerr << "Exception: " << e.what() << "\n";
- }
-
- return 0;
-}
diff --git a/doc/html/boost_asio/example/cpp11/echo/blocking_udp_echo_server.cpp b/doc/html/boost_asio/example/cpp11/echo/blocking_udp_echo_server.cpp
deleted file mode 100644
index db37fcf5b6..0000000000
--- a/doc/html/boost_asio/example/cpp11/echo/blocking_udp_echo_server.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//
-// blocking_udp_echo_server.cpp
-// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2015 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 <cstdlib>
-#include <iostream>
-#include <boost/asio.hpp>
-
-using boost::asio::ip::udp;
-
-enum { max_length = 1024 };
-
-void server(boost::asio::io_service& io_service, unsigned short port)
-{
- udp::socket sock(io_service, udp::endpoint(udp::v4(), port));
- for (;;)
- {
- char data[max_length];
- udp::endpoint sender_endpoint;
- size_t length = sock.receive_from(
- boost::asio::buffer(data, max_length), sender_endpoint);
- sock.send_to(boost::asio::buffer(data, length), sender_endpoint);
- }
-}
-
-int main(int argc, char* argv[])
-{
- try
- {
- if (argc != 2)
- {
- std::cerr << "Usage: blocking_udp_echo_server <port>\n";
- return 1;
- }
-
- boost::asio::io_service io_service;
-
- server(io_service, std::atoi(argv[1]));
- }
- catch (std::exception& e)
- {
- std::cerr << "Exception: " << e.what() << "\n";
- }
-
- return 0;
-}