boost的网络层在windows平台下是用iocp实现的,boost为了能够实现异步,实际上是利用了回调机制,就是在凡是会阻塞程序的函数accpet,recv,send中加入了一个回调函数作为参数,这样,程序尽管执行,所有其他操作由回调来完成,相对于boost中同步函数accept,read_some,write_some.在相对应的异步调用函数async_accept,async_read_some,async_write_some等函数中加入了一个函数参数作为回调用。这样在一个线程中也可以完成多个连接的接收,读,写任务了。也不用使用其他的网络模型,select,asyncselect等等。
一个简单的异步server端,摘抄自: <boost程序库完全开发指南>一书
#include <iostream>
using namespace std;
#pragma comment(lib, "E:\\Boost\\lib\\libboost_date_time-vc90-mt-sgd-1_54.lib")//必须使用的三个库
#pragma comment(lib, "E:\\Boost\\lib\\libboost_system-vc90-mt-sgd-1_54.lib")
#pragma comment(lib, "E:\\Boost\\lib\\libboost_regex-vc90-mt-sgd-1_54.lib")
#include <bo