zoukankan      html  css  js  c++  java
  • boost::asio 使用实例

     1 #include <iostream>
     2 #include <boost/asio.hpp>
     3 
     4 using namespace std;
     5 using namespace boost::asio;
     6 
     7 int main()
     8 {
     9     try
    10     {
    11         cout << "server start." << endl;
    12         io_service ios;
    13 
    14         ip::tcp::acceptor acc(ios,
    15             ip::tcp::endpoint(ip::tcp::v4(),6688));
    16 
    17         cout << acc.local_endpoint().address() << endl;
    18 
    19         while (true)
    20         {
    21             ip::tcp::socket sock(ios);
    22             acc.accept(sock);
    23 
    24             cout << "client:" ;
    25             cout << sock.remote_endpoint().address() << endl;
    26 
    27             sock.write_some(buffer("hello asio"));
    28         }
    29     }
    30     catch (std::exception& e)
    31     {
    32         cout << e.what() << endl;
    33     }
    34 
    35     return 0;
    36 }

    tcp client:

     1 #include <boost/asio.hpp>
     2 #include <iostream>
     3 
     4 using namespace std;
     5 using namespace boost::asio;
     6 
     7 void client(io_service &ios)
     8 {
     9     try
    10     {
    11         cout << "client start." << endl;
    12 
    13         ip::tcp::socket sock(ios);
    14         ip::tcp::endpoint ep(ip::address::from_string("127.0.0.1"),6688);
    15 
    16         sock.connect(ep);
    17 
    18         vector<char> str(100,0);
    19         sock.read_some(buffer(str));
    20         cout << "receive from " << sock.remote_endpoint().address();
    21         cout << &str[0] << endl;
    22     }
    23     catch (std::exception& e)
    24     {
    25         cout << e.what() << endl;
    26     }
    27 }
    28 
    29 void print(const boost::system::error_code&)
    30 {
    31     cout << "test wait..." << endl;
    32 }
    33 
    34 int main()
    35 {
    36     io_service ios;
    37     deadline_timer at(ios, boost::posix_time::seconds(5));
    38     at.async_wait(print);
    39 
    40     cout << "it show before at exired" <<endl;
    41     ios.run();
    42     return 0;
    43 }
  • 相关阅读:
    蚂蚁问题
    LinuxC安装gcc
    怎样在VC里面使用graphics.h绘图
    C语言之固定格式输出当前时间
    C语言之猜数字游戏
    C语言之新同学年龄
    C语言之ASCII码
    C语言之辗转相除法
    C语言之自守数
    C语言之一数三平方
  • 原文地址:https://www.cnblogs.com/kernel0815/p/3779040.html
Copyright © 2011-2022 走看看