1. // test.cpp : 定义控制台应用程序的入口点。
  2. //
  3. #include "stdafx.h"
  4. #include <boost/asio.hpp>
  5. #include <boost/bind.hpp>
  6. #include <boost/date_time/posix_time/posix_time_types.hpp>
  7. #include <iostream>
  8. using namespace boost::asio;
  9. using boost::asio::ip::tcp;
  10. class connect_handler
  11. {
  12. public:
  13. connect_handler(io_service& ios)
  14. : io_service_(ios),
  15. timer_(ios),
  16. socket_(ios)
  17. {
  18. socket_.async_connect(
  19. tcp::endpoint(boost::asio::ip::address_v4::loopback(), 3212),
  20. boost::bind(&connect_handler::handle_connect, this,
  21. boost::asio::placeholders::error));
  22. timer_.expires_from_now(boost::posix_time::seconds(5));
  23. timer_.async_wait(boost::bind(&connect_handler::close, this));
  24. }
  25. void handle_connect(const boost::system::error_code& err)
  26. {
  27. if (err)
  28. {
  29. std::cout << "Connect error: " << err.message() << "\n";
  30. }
  31. else
  32. {
  33. std::cout << "Successful connection\n";
  34. }
  35. }
  36. void close()
  37. {
  38. socket_.close();
  39. }
  40. private:
  41. io_service& io_service_;
  42. deadline_timer timer_;
  43. tcp::socket socket_;
  44. };
  45. int main()
  46. {
  47. try
  48. {
  49. io_service ios;
  50. tcp::acceptor a(ios, tcp::endpoint(tcp::v4(), 32123), 1);
  51. // Make lots of connections so that at least some of them will block.
  52. connect_handler ch1(ios);
  53. //connect_handler ch2(ios);
  54. //connect_handler ch3(ios);
  55. //connect_handler ch4(ios);
  56. //connect_handler ch5(ios);
  57. //connect_handler ch6(ios);
  58. //connect_handler ch7(ios);
  59. //connect_handler ch8(ios);
  60. //connect_handler ch9(ios);
  61. ios.run();
  62. }
  63. catch (std::exception& e)
  64. {
  65. std::cerr << "Exception: " << e.what() << "\n";
  66. }
  67. return 0;
  68. }

用asio的定时器实现带超时的connect,备忘的更多相关文章

  1. Poj 3356 ACGT(LCS 或 带备忘的递归)

    题意:把一个字符串通过增.删.改三种操作变成另外一个字符串,求最少的操作数. 分析: 可以用LCS求出最大公共子序列,再把两个串中更长的那一串中不是公共子序列的部分删除. 分析可知两个字符串的距离肯定 ...

  2. boost::asio学习(定时器)

    #include <boost/asio.hpp> #include <iostream> void handle1(const boost::system::error_co ...

  3. boost::asio::io_service::定时器任务队列

    使用io_service和定时器写的一个同步和异步方式的任务队列 #pragma once #include <string> #include <iostream> #inc ...

  4. 重构file_get_contents实现一个带超时链接访问的函数

    function wp_file_get_contents($url, $timeout = 30) { $context = stream_context_create(array( 'http' ...

  5. Java发送邮件必带超时时间配置

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 在线上遇到了一个发送邮件的问题,记录一下. 一.先说 ...

  6. 重构file_get_contents实现一个带超时POST传值函数

    function wp_file_post_contents($url, $post = null) { $context = array(); if (is_array($post)) { ksor ...

  7. 备忘DES带向量的加密和解密与DES简单加密与解密

    package com.ego.util; import java.security.Key; import java.security.SecureRandom; import java.secur ...

  8. 备忘-Sql server Timeout expired 超时时间已到. 达到了最大池大小 错误及Max Pool Size设置

    select * from sysprocesses where dbid= db_id('数据库名') 通过此语句可查看目前所有的连接进程 不够了就必须设置Max Pool Size,理论最大值为3 ...

  9. 服务器22端口连接超时 ssh: connect to host *** port 22: Operation timed out

    最近酸酸乳出问题,连接v社服务器发现碰到 ssh: connect to host master port 22: Connection timed out 的问题.现在对该问题做一下可能出现的问题 ...

随机推荐

  1. C语言深度剖析---const关键字(转载)

    const是constant的缩写,是恒定不变的意思.被const修饰的值,是只读变量. 1.const修饰只读变量,具有不变性      #include <stdio.h> int m ...

  2. 打工心态废掉了很多人,包括你吗?(你把现在这家公司的业务都弄清楚、弄懂了吗?君子报仇十年不晚!不离不弃!)good

    我只拿这点钱,凭什么去做那么多工作,我傻呀. 我为公司干活,公司付我一份报酬,等价交换而已,我不欠谁的. 我只要对得起这份薪水就行了,多一点我都不干,做了也白做. 工作嘛,又不是为自己干,说得过去就行 ...

  3. ZooKeeper - Perl bindings for Apache ZooKeeper Perl绑定用于 Apache ZooKeeper

    ZooKeeper - Perl bindings for Apache ZooKeeper Perl绑定用于 Apache ZooKeeper 监控 master/slave 需要使用zk的临时节点 ...

  4. div无法触发blur事件解决的方法

    默认情况下div无法获取焦点,无法触发focus与blur事件,推測span,a等标签也无法触发焦点事件(input:button.及button标签能够触发) 怎样使div触发blur事件:能够给d ...

  5. Codeforces Round #260 (Div. 2)C. Boredom(dp)

    C. Boredom time limit per test 1 second memory limit per test 256 megabytes input standard input out ...

  6. [置顶] CSS+DIV总结

         HTML在Web飞速发展的过程中起着重要作用,有着重要地位.HTML初衷是为了表达标签(<p>.<table>)的内容信息.同时文档布局由浏览器来完成,不使用任何格式 ...

  7. Column store index 列数据如何匹配成行数据?

    SQL Server 2012引入了列存储索引,对每列的数据进行分组和存储,然后联接所有列以完成整个索引.这不同于传统索引,传统索引对每行的数据进行分组和存储,然后联接所有行以完成整个索引. 在访问基 ...

  8. 为什么我的outlook只能收信不能发信,发送测试电子邮件消息: 无法发送此邮件。请在帐户属性中验证电子邮件

    链接地址:http://zhidao.baidu.com/link?url=aVIFo2aNLuHIZGZuEUataHkZp4XApHqyvbEK8ACHPhi3jwhGhM0GBAtm72AnsP ...

  9. java项目打jar包的两种情况

    链接地址:http://jingyan.baidu.com/article/6b97984d8a6ddc1ca2b0bfa0.html 本文介绍一下java项目打jar包时的两种情况各怎么操作   方 ...

  10. BZOJ 4152: [AMPPZ2014]The Captain( 最短路 )

    先按x排序, 然后只有相邻节点的边才有用, 我们连起来, 再按y排序做相同操作...然后就dijkstra ---------------------------------------------- ...