逐步实现TCP服务端Step03-6:封装MessageHead类

与消息相关的几个类中,MessageHead是相对比较简单的。它维护消息首部的各字段,提供对这些字段的Encode和Decode方法。

首部中应该设定哪些字段呢?消息ID是必须的,然后是消息类型。如果只讨论client与server之间的消息交互的话,只要这两个字段就够了。但实际上,server与server之间也会发生通信,有时候还需要某个机构把来自某个server的消息转发给另一个指定的server ...


逐步实现TCP服务端Step03-5:与Message相关的类

目前与消息相关的有如下三个东西,一个结构和两个函数,现在要做的是把它们组装到一起。

从上图可知 ...


逐步实现TCP服务端Step03-4:关于基于共享内存的恢复功能

若不显式销毁或重启系统,进程消亡后,共享内存将一直存在。当挂掉的进程再次被启动时,可基于共享内存中的历史数据继续之前的工作,这就是”恢复“。

要实现这种“恢复”机制,进程在启动的时候,首先要做的是,attach已存在的共享内存而非重建,只有当相应的共享内存不存在的时候才重建。原因很简单,共享内存是存放数据的容器,一旦被重建,数据就没了,也就不可能做恢复操作了。对于这一点 ...


逐步实现TCP服务端Step03-3:封装CodeQueue类

CodeQueue即:code队列,一个CodeQueue实例将在一个由SharedMemory实例所维护的共享内存段上进行构造。CodeQueue依赖于SharedMemory ...


逐步实现TCP服务端Step03-2:封装SharedMemory、SHMFactory类

一个SharedMemory实例对应于一块共享内存,SharedMemory所提供的方法都是针对于这块已被创建的共享内存的。共享内存的创建不应该由SharedMemory来负责,毕竟自己不能创建自己 ...


封装一个SystemV共享内存创建函数

CreateShareMemory具体实现 ...