asio
bravegogo
知行合一,积学养气
展开
-
Boost::Asio::Error的用法浅析
一般而言我们创建用于接收error的类型大多声明如下: boost::system::error_code error 我们用这个类型去接受在函数中产生的错误 如 socket.connect( endpoint, error); 如果连接失败,错误类型会保存到error中,比如连接主机失败可能会返回这样的错误 boost::asio::error::host_not_转载 2016-03-17 10:59:43 · 2229 阅读 · 0 评论 -
asio 中strand的作用
io_service不能保证线程安全 strand提供串行执行, 能够保证线程安全, 同时被post或dispatch的方法, 不会被并发的执行. strand 类似 oc GCD 中的dispatch_barrier_XXXXXXX 例子: boost::asio::io_service m_service; boost::原创 2016-02-29 20:02:21 · 3314 阅读 · 0 评论 -
io_service work 的作用
当有任务的时候,run函数会一直阻塞;但当没有任务了,run函数会返回,所有异步操作终止。 客户端程序中,如果我想连接断开后重连,由于连接断开了,run会返回,当再次重连的时候,由于run返回了,即使连接成功了,也不会调用aysnc_connect绑定的回调函数。 解决方法: 1,在再次重连的时候,要重新调用run函数,在调用的前一定要调用io_service::res原创 2016-02-29 18:53:09 · 2601 阅读 · 0 评论 -
asio socket设置 server地址与端口的两种方式
1. 用解释器的方法, 常用来解析域名, 如 // query("www.163.com","80"), 也可以 query("www.163.com","telnet") // echo 7/tcp // ftp 21/tcp # File Transfer Protocol (Control) //原创 2016-03-01 16:36:13 · 2287 阅读 · 0 评论