1. 程式人生 > >boost::asio-網路部分框架探索

boost::asio-網路部分框架探索

ASIO 網路相關部分類關係:

最上層的類basic_io_object提供了對各平臺非同步io框架的封裝(win_iocp, linux_reactive_epoll),遮蔽了平臺上的細節對外部暴露了兩個重要介面:

1.get_service用於獲取平臺的服務(iocp,reactive的支援)

2.get_implementation操作資源的集合(socket控制代碼,本地地址,遠端地址,協議型別等)

繼承自他的所有類,都是通過這兩個介面來呼叫本地服務的。

 

basic_socket中間層的作用,實際上是抽象了stream_socket(TCP),datagram_socket(UDP),raw_socket(IP)的共同介面部分:

open,assign,bind,connect,shutdown,close等等。這一層完全是為了封裝共同介面。

 

第三層具體協議實現層:

basic_stream_socket實現了TCP協議的特有介面

basic_datagram_socket實現了UDP協議的特有介面

basic_raw_socket實現了IP協議的介面(ICMP等等)