
c++
文章平均质量分 74
c++基础教程
coding_听
这个作者很懒,什么都没留下…
展开
-
十二、服务器优雅退出
前面我们实现的服务器都是把黑框叉掉强行关闭,这种方式显然是不够优雅的,可能还有未处理的逻辑节点。所以本节通过捕获信号的方式让服务器安全退出。原创 2024-08-15 08:34:38 · 269 阅读 · 0 评论 -
十一、实现逻辑层
我们的LogicSystem类为单例类,可以只把这个类写为单例,也可以写一个单例模板类,让其它类继承它就可以形成单例。这里选择第二种,因为后面可能还会实现其他的单例类。C++基础好的同学应该很容易看明白,有不明白的地方可以利用一些ai工具解读一下,也很简单。MSG_HELLO_WORD定义在const.h中,表示消息id。在Session.h中,我们可以添加一个逻辑节点类。原创 2024-08-14 19:44:57 · 448 阅读 · 0 评论 -
十、消息头完善和使用json序列化
本教程使用的是jsoncpp,安装方式网上有很多,可以自己下载源码编译,也可以使用vcpkg一键安装,我比较推荐使用vcpkg,感觉这个就像 visual studio 的 maven,使用这种方式安装后就不需要自己配置项目的包含目录和库目录了,直接使用。原创 2024-08-14 10:56:30 · 595 阅读 · 0 评论 -
九、字节序处理和消息队列控制
本文介绍了网络字节序以及控制它的必要性,限制了发送队列长度保证发送数据的高效率。原创 2024-08-12 16:45:54 · 1201 阅读 · 0 评论 -
八、粘包问题处理
关于粘包问题,其实就是tcp缓冲区的大小限制而引发的问题。比如发送缓冲区总大小为10个字节,当前有5个字节数据(上次要发送的数据比如'hello')未发送完,那么此时只有5个字节空闲空间,我们调用发送接口发送abcdefg其实就是只能发送abcde给服务器,那么服务器一次性读取到的数据就很可能是helloabcde。而剩余的fg只能留给下一次发送,下一次服务器接收到的就是fg。这样看来就是两次发送的数据有一部分粘在了一起,就称作粘包。原创 2024-08-12 15:34:26 · 1114 阅读 · 0 评论 -
七、实现全双工通信
这就是一个全双工通信的基本逻辑,大家可以用之前的同步读写客户端进行运行测试。但是写到这里仍然存在大量缺陷,下一节中将解决粘包问题。原创 2024-08-11 16:37:49 · 300 阅读 · 0 评论 -
六、模拟伪闭包实现连接的安全回收
在这一节中,解决了上一节中的二次析构问题。原创 2024-08-11 16:18:42 · 413 阅读 · 0 评论 -
五、实现基于官方案例的异步server
到这里依然是白雪,也是不会再实际项目中使用的,主要有以下原因因为该服务器的发送和接收以应答的方式交互,而并不能做到应用层想随意发送的目的,也就是未做到完全的收发分离(全双工逻辑)。该服务器未处理粘包,序列化,以及逻辑和收发线程解耦等问题。另外,该demo示例为仿照asio官网编写的,其中存在隐患,就是当服务器即将发送数据前(调用async_write前),此刻客户端中断,服务器此时调用async_write会触发发送回调函数,判断ec为非0进而执行delete this逻辑回收session。原创 2024-08-09 10:03:17 · 375 阅读 · 0 评论 -
四、异步读写api介绍和使用
在上一节中,我们实现了客户端与服务器之间的同步读写,在实际开发中,这套方案是行不通的,从这一小节开始来介绍异步读写的的写法。原创 2024-08-09 09:13:48 · 1034 阅读 · 0 评论 -
三、同步读写的客户端和服务器示例
这个demo实现起来是比较简单的,也充分利用到了前面所介绍的api。但是,这也是能是个玩具代码,没有任何意义,实际开发中是不可能用这种方式的。这也是某蓝色小电视平台一搜索就出现一大把的卖课视频中所介绍的东西。在后面的更新中,会逐渐加入正真在开发中实用的东西,循序渐进。。。原创 2024-08-07 19:29:40 · 608 阅读 · 0 评论 -
二、C++ boost::asio 的使用
上一节介绍了visual studio搭建boost环境,现在我们来使用它来进行网络编程。原创 2024-08-07 18:07:39 · 1638 阅读 · 0 评论 -
一、Visual Studio 配置 C++ boost 库
Visual Studio 配置 C++ boost 库的保姆及教程。。。原创 2024-08-07 09:16:53 · 791 阅读 · 0 评论 -
C++ asio网络编程
持续更新中。。。原创 2024-08-07 09:20:37 · 533 阅读 · 0 评论 -
C++11多线程编程
看完一定让你收益良多的C++11多线程编程。原创 2024-07-27 17:08:37 · 399 阅读 · 0 评论