Ale*_*iea 7 c++ ssl boost boost-asio
文档似乎并没有说明太多:lower_layer()、next_layer()。
它们之间有什么区别以及何时使用它们?
要回答这个问题,首先要记住的是boost::asio::ssl::stream模板类。通常它看起来像boost::asio::ssl::stream<boost::asio::ip::tcp::socket>。因此是使用实现的boost::asio::ip::tcp::socket。这将是的next_layerboost::asio::ssl::stream。另一方面,lowest_layer始终是 a basic_socket(其在文档中进行了描述)。
它有点含糊不清,特别是当您在标头中看到tcp::sockettypedef to时basic_stream_socket<Tcp>,它是直接继承自 的basic_socket。而且..用OOP术语你可以说“next_layer是最低层”..
但让我们来看另一种情况,您创建了一个ssl::stream< MyOwnClass >. 在这种情况下next_layer是MyOwnClass,它应该控制数据读/写。最低层将是其MyOwnClasstypedef 中所说的任何内容。
UPD:何时使用每个。使用next_layer进行读/写(对于 SSL 连接,您不需要它,但在 starttls 会话之前需要它)。并使用lowest_layer来控制底层socket。
| 归档时间: |
|
| 查看次数: |
2851 次 |
| 最近记录: |