Asio 和 BSD Socket API
Asio库在BSD socket API的基础上,对socket有一个底层地封装,后者被广泛地使用,它还被其他语言视为网络部分的基石,比如Java。这种底层的封装是为了适应高效和高可扩展性的程序。例如,它尽量发挥信号量的威力,避免使用数据拷贝,尽量少地调用线程,诸如此类。
BSD不安全和不稳定的部分没有被引入,比如,用整形来表示socket,这种表达缺乏类型安全的保证。在Asio中,每种协议有对应的类,比如,在TCP协议中,我们使用ip::tcp::socket而在UDP协议下我们使用ip::udp::socket。
BSD socket和Asio的API区别见表view here