Skip to content

Instantly share code, notes, and snippets.

@matwey
Created July 4, 2018 18:47
Show Gist options
  • Select an option

  • Save matwey/17a931a32992993f2af79caab0c7a6be to your computer and use it in GitHub Desktop.

Select an option

Save matwey/17a931a32992993f2af79caab0c7a6be to your computer and use it in GitHub Desktop.
Boost Asio Buffer Sequence
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <string>
#include <vector>
#include <boost/asio.hpp>
using boost::asio::ip::tcp;
int main(int argc, char** argv) {
boost::asio::io_service io_service;
tcp::resolver resolver(io_service);
tcp::resolver::query query(tcp::v4(), "127.0.0.1", "12345");
tcp::resolver::iterator iterator = resolver.resolve(query);
tcp::socket s(io_service);
boost::asio::connect(s, iterator);
std::string s1("123\n");
std::string s2("hello\n");
std::string s3("world\n");
std::string s4("321\n");
std::string s5("test\n");
std::vector<boost::asio::const_buffer> b;
b.push_back(boost::asio::buffer(s1)+2);
b.push_back(boost::asio::buffer(s2));
b.push_back(boost::asio::buffer(s3));
b.push_back(boost::asio::buffer(s4));
b.push_back(boost::asio::buffer(s5));
s.async_write_some(b, [] (const boost::system::error_code& error, std::size_t bytes_transferred) {
std::cerr << "ec=" << error << " size=" << bytes_transferred << std::endl;
});
io_service.run();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment