Boost.asio 之iostream类
1.名称
ip::tcp::iostream
2.父类
std::basic_iostream
3.TCP通信(控制台程序)
服务端 Demo
io_service io; ip::tcp::endpoint ep(ip::tcp::v4(), 6688); ip::tcp::acceptor acceptor(io, ep); for (;;) { ip::tcp::iostream tcp_stream; acceptor.accept(*tcp_stream.rdbuf()); tcp_stream << "hello tcp stream." << std::endl; } getchar(); std::cout << "Hello World!\n";
客户端
//iostream_tcp_client for (int i = 0; i < 5; ++i) { ip::tcp::iostream tcp_stream("127.0.0.1", "6688"); std::string str; getline(tcp_stream, str); std::cout << str << std::endl; }
4.UDP通信(控制台)
服务端 demo
//udp_syn_server_start std::cout << "udp server start." << std::endl; io_service io; ip::udp::socket sock(io, ip::udp::endpoint(ip::udp::v4(), 6699)); for (;;) { char buf[1]; ip::udp::endpoint ep; boost::system::error_code ec; sock.receive_from(buffer(buf), ep, 0, ec); if (ec && ec != error::message_size) { throw boost::system::system_error(ec); } std::cout << "send to " << ep.address() << std::endl; sock.send_to(buffer("hello asio udp."), ep); } //udp_syn_server_end
客户端 demo
//udp_syn_client_start std::cout << "client start." << std::endl; io_service io; ip::udp::endpoint send_ep( ip::address::from_string("127.0.0.1"), 6699); ip::udp::socket sock(io); sock.open(ip::udp::v4()); char buf[1]; sock.send_to(buffer(buf), send_ep); std::vector<char> v(100, 0); ip::udp::endpoint recv_ep; sock.receive_from(buffer(v), recv_ep); std::cout << "recv from " << recv_ep.address() << std::endl; std::cout << &v[0] << std::endl; //udp_syn_client_end

浙公网安备 33010602011771号