笔记
IOCP:Input/Output Completion Port,Windows独有的内核对象,内核级完成IO的传输 ,数据到来的时候自动把数据搬运到用户态的内存区,不需要拷贝文件描述符FileDescription(fd)到内核态查询状态,有状态了也不用用户态程序去拷贝,注册回调的实现方式。
ASIO:Asynchronous Input/Output ,一个支持并发的异步模型库,跨平台的!便于开发者进行网络程序开发,已经封装在boost库中。boost里面的Asio支持跨平台的原因是其封装了windows下的完成端口,且在reactorIO模式下实现了linux下的类似框架。
总结
ASIO封装了IOCP,目的是解决高并发下的网络IO处理性能问题,就是为了提高服务型程序的响应速度。如果纯windows开发,直接用Iocp足矣!