9、boost asio 教程---让事情更简单

在上一课中,我们回顾了一个非常简单的聊天服务器。尽管160行代码是一个相当小的程序,但在高级编程语言如Python或Erlang中制作相同的服务器需要更少的代码。

“但C++不是Python或Erlang。它不是低级编程语言吗?” — 你可能会问。嗯,答案是肯定和否。C++是一个领域,其中有太多东西由您决定并依赖于您。太多的自由意味着太多的责任。

是的,您可以编写相当低级的代码,处理原始内存和原始指针。您可能需要考虑字节顺序。您的代码可能会生成导致应用程序崩溃的不可恢复错误,以及其他一些在Python中您永远不必面对的事情,除非您愿意。但是,您也可以以一种方式分层编写代码,其中每个层级具有与其自己的抽象级别相关的一组非常狭窄的职责,而该代码的最顶层可以与Python或Erlang一样高级。

因此,C++是一种编程语言,您应该以狭窄层次的堆栈方式实现代码,并且您应该非常小心地执行此操作。

Boost.Asio是一个提供低级功能的库。在您的大型生产质量应用程序中,您不应直接使用Boost.Asio函数,就像您不应使用`fopen`或互斥锁一样。Boost.Beast是一个在Boost.Asio之上构建的提供HTTP和WebSockets功能的库,它提供了+1级的抽象。然而,即使在生产质量的应用程序中,该级别也太低,不能直接使用。根据Boost.Beast的作者Vinnie Falco的说法,该库不是一个可直接使用的服务器或客户端。它是一组工具,您应该使用这些工具来构建自己的库。而您应该在构建在Boost.Beast之上的库的基础上构建应用程序,而Boost.Beast则是构建在Boost.Asio之上的。这就是您在C++中的做事方式。

因此,在应用程序开发

猜你喜欢

转载自blog.csdn.net/Knowledgebase/article/details/132861466