]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/asio/example/cpp03/local/stream_client.cpp
5 // Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com)
7 // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
14 #include <boost/asio.hpp>
16 #if defined(BOOST_ASIO_HAS_LOCAL_SOCKETS)
18 using boost::asio::local::stream_protocol
;
20 enum { max_length
= 1024 };
22 int main(int argc
, char* argv
[])
28 std::cerr
<< "Usage: stream_client <file>\n";
32 boost::asio::io_context io_context
;
34 stream_protocol::socket
s(io_context
);
35 s
.connect(stream_protocol::endpoint(argv
[1]));
37 using namespace std
; // For strlen.
38 std::cout
<< "Enter message: ";
39 char request
[max_length
];
40 std::cin
.getline(request
, max_length
);
41 size_t request_length
= strlen(request
);
42 boost::asio::write(s
, boost::asio::buffer(request
, request_length
));
44 char reply
[max_length
];
45 size_t reply_length
= boost::asio::read(s
,
46 boost::asio::buffer(reply
, request_length
));
47 std::cout
<< "Reply is: ";
48 std::cout
.write(reply
, reply_length
);
51 catch (std::exception
& e
)
53 std::cerr
<< "Exception: " << e
.what() << "\n";
59 #else // defined(BOOST_ASIO_HAS_LOCAL_SOCKETS)
60 # error Local sockets not available on this platform.
61 #endif // defined(BOOST_ASIO_HAS_LOCAL_SOCKETS)