handler机制

Boost.Asio技术文档

烈酒焚心 提交于 2019-11-29 16:56:41
Christopher Kohlhoff Copyright © 2003-2012 Christopher M. Kohlhoff 以Boost1.0 的软件授权进行发布(见附带的LICENSE_1_0.txt文件或从 http://www.boost.org/LICENSE_1_0.txt ) Boost.Asio 是用于网络和低层IO 编程的跨平台C++库,为开发者提供了C++环境下稳定的异步模型. 综述 基本原理 应用程序与外界交互的方式有很多, 可通过文件,网络,串口或控制台.例如在网络通信中,完成独立的IO操作需要很长时间.对应用程序开发者提出了一个挑战. Boost.Asio 提供了管理需长时间运行操作的工具, 但不必涉及到线程的并发模式和显式锁定. Boost.Asio 库使用C++ 来实现,提供如网络编程等常用的操作系统接口. Boost.Asio实现了如下目标: · 可移植性Portability. 库支持一系列的常用系统操作, 具有稳定的跨平台特性. · 可扩展性Scalability. 库可以帮助开发者构建数千并发连接的网络应用程序.asio 库实现的每个系统操作都使用了最具扩展性的机制. · 效率Efficiency. 库支持发散聚合IO(scatter-gather I/O) 等技术,使应用程序尽量少的拷贝数据. · 可以像BSD Sockets

Android实际开发bug大总结

爱⌒轻易说出口 提交于 2019-11-26 10:56:18
目录介绍 1.1 java.lang.UnsatisfiedLinkError找不到so库异常 1.2 java.lang.IllegalStateException非法状态异常 1.3 android.content.res.Resources$NotFoundException 1.4 java.lang.IllegalArgumentException参数不匹配异常 1.5 IllegalStateException:Can't compress a recycled bitmap 1.6 java.lang.NullPointerException空指针异常 1.7 android.view.WindowManager$BadTokenException异常 1.8 java.lang.ClassCastException类转化异常 1.9 Toast运行在子线程问题,handler问题 2.1 java.lang.ClassNotFoundException类找不到异常 2.2 java.util.concurrent.TimeoutException连接超时崩溃 2.3 java.lang.NumberFormatException格式转化错误 2.4 java.lang.IllegalStateException: Fragment not attached to

Netty学习笔记(10)——Netty应用示例(1)

核能气质少年 提交于 2019-11-25 23:15:41
本来想先了解Netty组件,然后再学习组件应用的,然后越学越感觉怪异,总感觉少了啥,组件学起来不知道咋用的,想想还是先从Netty应用开始学算了。 自己的技术学习方法:先学习技术的应用,在应用中逐步抛出问题,比如说这个功能是怎么实现的,带着问题去接触底层原理,然后解决问题。 1. 最基础的Netty应用实现——实现请求与响应 1. 首先是环境配置(jdk)要保证没问题,其次,要引入Netty的jar,使用netty-5.0版本的jar。 2. 在使用Netty开始开发之前,先想一想使用jdk中的NIO原生类库开发服务端时所需要的主要步骤: 首先,创建ServerSocketChannel,设置为非阻塞模式。 绑定监听端口,设置TCP连接参数。 创建一个独立IO线程,用于轮询多路复用器Selector。 创建Selector,将创建的ServerSocketChannel注册到该Selector中,并且监听ServerSocketChannel上的SelectionKey.OP_ACCEPT事件。 启动独立IO线程,在循环体中执行Selector.select()方法,获取到就绪的Channel。 每当获取到Channel时,就需要判断Channel的状态, 如果是OP_ACCEPT,那么就说明是新的客户端接入,调用ServerSocketChannel的accept()方法