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

本文介绍如何使用Boost.Asio库在C++中进行网络编程,强调在高级编程语言中实现类似功能所需的代码量对比,以及C++在层次化编程中的优势。通过举例说明,解释了在大型应用中不应直接使用Boost.Asio,而是应在其之上构建更高层次的抽象库,如Boost.Beast。最后,提倡将代码组织为具有狭窄功能层的结构,以便构建高效的聊天服务器。
摘要由CSDN通过智能技术生成

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

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

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

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

Boost.Asio是一个提供低级功能的库。在您的大型生产质量应用程序中,您不应直接使用Boost.Asio函数,就像您不应使用`fopen`或互斥锁一样。Boost.Beast是一个在Boost.Asio之上构建的提供HTTP和WebSockets功能的库,它提供了+1级的抽象。然而,即使在生产质量的应用程序中,该级别也太低,不能直接使用。根据Boost.Bea

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Knowledgebase

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值