← index
cplusplus11.Examples/boost/asio/ex1/main.cpp
Source: cplusplus11.Examples/boost/asio/ex1/main.cpp
// modified example from boost.org

#include<iostream>
#include"filesend.hpp"
#include<boost/array.hpp>

using boost::asio::ip::tcp;

int main(int argc, char **argv) {
    try {
        if(argc != 2) {
            std::cerr << "Error requires one argument.\n";
            return 1;
        }
        boost::asio::io_service io_service;
        tcp::resolver resolver(io_service);
        tcp::resolver::query query(argv[1], "10241");
        tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);
        tcp::socket socket(io_service);
        boost::asio::connect(socket, endpoint_iterator);
        while(1) {
            boost::array<char, 128> buf;
            boost::system::error_code error;
            size_t len = socket.read_some(boost::asio::buffer(buf), error);
            if(error == boost::asio::error::eof)
                break;
            else if(error)
                throw boost::system::system_error(error);
            
            std::cout.write(buf.data(), len);
        }
    } catch(std::exception &e) {
        std::cerr << e.what() << "\n";
    }
    return 0;
}