1.5s后關閉socket
demo
// overtimeClient.cpp : 此文件包含 "main" 函數。程序執行將在此處開始並結束。 // #include "pch.h" #define BOOST_ASIO_DISABLE_STD_CHRONO #include <iostream> #include <boost/asio.hpp> #include <boost/chrono.hpp> #include <boost/asio/steady_timer.hpp> using namespace boost::asio; int main() { io_service io; ip::tcp::socket sock(io); ip::tcp::endpoint ep(ip::address::from_string("127.0.0.1"), 6688); sock.async_connect(ep, [](const boost::system::error_code&) {}); //異步連接 steady_timer t(io); t.expires_from_now(boost::chrono::milliseconds(5000)); //開始計時 t.async_wait( //異步等待超時 [&](const boost::system::error_code&) { //使用lambda表達式 std::cout << "time expired." << std::endl; sock.close(); //關閉socket } ); std::vector<char> str(sock.available() + 1, 0); boost::system::error_code ec; for (;;) { sock.read_some(buffer(str), ec); if (ec) { break; } std::cout << &str[0]; } std::cout << "syschronous client." << std::endl; std::cout << "syschronous client." << std::endl; std::cout << "syschronous client." << std::endl; std::cout << "syschronous client." << std::endl; std::cout << "syschronous client." << std::endl; io.run(); //進入異步事件循環 getchar(); std::cout << "Hello World!\n"; }