boost :: asio相当于Poco :: Net吗?

hei*_*nob 4 boost-asio poco-libraries

我是一个boost用作c ++库的项目的一部分.现在我们要使用SMTP/POP3/SSL/HTTP/HTTPS.我在中检测到了几个拟合类和函数Poco::Net

  • 波科::网:: POP3ClientSession
  • 波科::净MAILMESSAGE ::
  • 波科::网:: SMTPClientSession
  • 波科::网:: HTTPSClientSession
  • 波科::网::的HTTPRequest

我找不到任何相同的东西boost::asio.在我做出最终决定之前,我想询问社区,如果我是对的,或者是否有类似的东西boost......

Tan*_*ury 15

虽然有一些重叠,但Boost.Asio并不等同于POCO的Net库.更高级别的协议超出了Boost.Asio的范围.该库的基本原理明确指出,它是一个简单而非框架,旨在支持其他提供更高抽象级别的库的开发,例如HTTP.此外,我不知道任何提供对更高级别协议的支持的Boost库(已发布或候选).一种替代方案可能是cpp-netlib库,它仍处于开发阶段,旨在为更高级别的协议提供支持.但是,它目前只实现了HTTP客户端和服务器.

如果您正在寻找更高级别的协议支持,那么POCO可能是一个很好的候选者.但是,在做出决定之前,我建议考虑其他要点:

  • 支持:在StackOverflow上,似乎比更活跃.其他支持途径包括Boost Mailing ListPOCO fourms.
  • Boost.Asio旨在成为一个工具包并利用通用编程.虽然POCO通过非框架方式提供某些功能,但某些更高级别的功能仅通过框架提供.因此,它引入了与应用程序更紧密的耦合,并可能影响应用程序的设计.
  • 两个库之间的异步编程略有不同.在POCO中,回调与事件类型相关联,允许对单个订阅执行多次回调.另一方面,Boost.Asio将回调与单个操作相关联,导致对给定操作最多调用一次回调.这种差异可能会影响异步链的设计和流程.