diff options
Diffstat (limited to 'doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_server.cpp')
-rw-r--r-- | doc/html/boost_asio/example/cpp11/echo/blocking_tcp_echo_server.cpp | 76 |
1 files changed, 0 insertions, 76 deletions
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; -} |