东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 1405|回复: 0
打印 上一主题 下一主题

[C/C++] boost_asio_tcp客户端获取时间

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14441
QQ
跳转到指定楼层
楼主
发表于 2021-10-18 16:18:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式





boost_asio_tcp客户端获取时间




  1. #include <iostream>
  2. #include <boost/asio.hpp>
  3. #include <boost/array.hpp>


  4. using boost::asio::ip::tcp;


  5. int main(int argc, char *argv[]){
  6.     std::cout << "boost_asio_tcp客户端获取时间.cpp!" << std::endl;
  7.     try
  8.     {
  9.         if(argc != 2){
  10.             // ./main time.nist.gov
  11.             // ./main 127.0.0.1
  12.             std::cerr << "正确用法:client <host>" << std::endl;
  13.             return 1;
  14.         }
  15.         boost::asio::io_service io_service;
  16.         tcp::resolver resolver(io_service);
  17.         // 服务:daytime    linux在 /etc/services
  18.         // daytime                13/tcp
  19.         // daytime                13/udp  服务或端口号
  20.         tcp::resolver::query query(argv[1], "13");
  21.         tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);

  22.         tcp::socket socket(io_service);
  23.         // 同步的 阻塞的
  24.         boost::asio::connect(socket, endpoint_iterator);

  25.         for(;;){
  26.             boost::array<char, 128> buf;
  27.             boost::system::error_code error;
  28.             // tcp 字节流服务
  29.             size_t len = socket.read_some(boost::asio::buffer(buf), error);
  30.             if(error == boost::asio::error::eof){
  31.                 std::cout << "服务器已经断开了socket了!\n";
  32.                 break;
  33.             }else if (error)
  34.             {
  35.                 throw boost::system::system_error(error);
  36.             }
  37.             // std::cout << ""  这种写法 控制更多
  38.             std::cout.write(buf.data(), len); // 原始的输出 不作改变
  39.             
  40.         }


  41.     }
  42.     catch(const std::exception& e)
  43.     {
  44.         std::cerr << e.what() << '\n';
  45.     }
  46.    


  47.     return 0;
  48. }
复制代码


让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-5-28 19:14 , Processed in 0.182080 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表