Zinx-Tcp轻量级并发服务器框架-MMO游戏服务器开发
文章平均质量分 79
Zinx-Tcp轻量级并发服务器框架-MMO游戏服务器开发
大大枫
开开心心每一天(*^v^*)/
展开
-
C/C++轻量级并发TCP服务器框架Zinx-框架开发002: 定义通道抽象类
输入通道类stdin和输出通道类stdout与很多相同点,无需写重复代码。定义通道抽象类,把输入和输出的不同通过虚函数扩展。虚函数:读,写,获取fd,数据处理。处理数据的函数:将数据交给输出通道。将数据追加到缓冲区的函数。创建通道对象(成员赋值)添加通道到kernel。原创 2023-11-15 06:46:38 · 772 阅读 · 0 评论 -
C/C++轻量级并发TCP服务器框架Zinx-框架开发001: 读取标准输入,回显到标准输出
但是set方法不适用epoll,应该是添加通道到epoll里,所以使用Addchannel。在stdinChannel类中实现一个ReadFd方法。定义一个channel对象,并设置get和set方法。定义一个channel对象,并设置get和set方法。Zinxkernel类中引入Channel类。在kernel的构造函数中创建。在哪里创建epoll fd?2 调用输出通道的读取函数。1 等输入epoll。原创 2023-11-15 02:31:36 · 920 阅读 · 0 评论 -
C/C++轻量级并发TCP服务器框架Zinx-游戏服务器开发006:基于redis查找玩家姓名+游戏业务实现总结
7.2版本命令在目录下:1.4 Hiredis API的使用1.5 我的动态库和头文件根据上述的输出信息,我把动态库直接拷贝到了系统目录下,程序加载的时候加载的是头文件的位置没有改变,使用的默认设置路径和库要根据实际情况设置redisConnect跟数据库建立链接(redisFree释放掉)。redisCommand发命令并通过返回值取出结果(freeReplyObject释放掉)。2 Redis的使用2.1 初始化时候2.2 结束的时候3 测试原创 2023-11-09 03:17:38 · 1677 阅读 · 0 评论 -
C/C++轻量级并发TCP服务器框架Zinx-游戏服务器开发004:游戏核心消息处理 - 玩家类的实现
获取感兴趣的区域(Area Of Interest)的算法。形成周围的概念。在多人游戏中,各个游戏客户端之间需要通过服务器向彼此更新自身状态。但对于当玩家来说,我们不需要获取“太远”的玩家的信息,所以,在服务器端,我们通过AOI算法可以获取到某个客户端“周围”的玩家,进而只在该小范围内同步信息。网格法AOI参考游戏世界的坐标,创建一个边界相同的矩形。选取适当的颗粒度,将矩形分割成几×几的网格。每个客户端都要按照实际坐标添加到某个格子里。客户端所在格子的周围八个格子内的玩家就是周围玩家。原创 2023-11-08 13:15:44 · 819 阅读 · 0 评论 -
C/C++轻量级并发TCP服务器框架Zinx-游戏服务器开发005:守护进程与进程监控
每个进程组有唯一的进程组ID,每个进程组有一个进程组组长。如何判断一个进程是不是这个进程组的组长了,通常进程组ID等于进程ID那么这个进程就是对应进程组的组长。进程除了有进程的PID之外还有一个进程组,进程组是由一个进程或者多个进程组成。守护进程也叫做精灵进程,是运行在后台的一种特殊进程他独立于控制终端并且可以周期性的执行某种任务或者等待处理某些发生的事件。守护进程是非常有用的进程,在Linux当中大多数。被成为控制进程,一个会话的几个进程组可以分为。会话是有一个或者多个进程组组成的集合。原创 2023-11-08 13:08:25 · 723 阅读 · 0 评论 -
Centos7-查看内存泄漏
Centos7 用yum,centos8用dnf。根据泄漏信息再完善代码补充析构函数。然后重新查看,就能看到泄漏的信息。原创 2023-11-08 08:43:31 · 607 阅读 · 0 评论 -
C/C++轻量级并发TCP服务器框架Zinx-游戏服务器开发003:架构搭建-需求分析及TCP通信方式的实现
消息定义每一条服务器和客户端之前的消息都应该满足以下格式消息内容的长度(4个字节,低字节在前)| 消息ID(4个字节,低字节在前)| 消息内容 |消息以及其处理方式已经在客户端实现,本项目要实现的是服务器端的相关处理详细定义如下消息ID消息内容发送方向客户端处理服务器处理1玩家ID和玩家姓名S->C记录自己ID和姓名无2聊天内容C->S无广播给所有玩家3新位置C->S无处理玩家位置更新后的信息同步200玩家ID,聊天内容/初始位置/动作(预留)/新位置。原创 2023-11-05 11:13:32 · 1545 阅读 · 0 评论 -
跨平台联调代码:Windows下VS2022远程连接Linux-protobuf为例
设置Windows的主要目的是为了可以直接在Windows上VS中直接运行代码,无需跑到Linux上重新编译运行。这个主要是到时候编译的时候可以直接在系统里面搜,与Windows平台VS2022无关。原创 2023-11-05 05:59:28 · 516 阅读 · 0 评论 -
C/C++轻量级并发TCP服务器框架Zinx-游戏服务器开发002:框架学习-按照三层结构模式重构测试代码+Tcp数据适配+时间轮定时器
public:/*成员变量表示要回显的字符串*//*开启输出标志*//*该消息是命令*//*要加前缀*/CmdMsg();原创 2023-11-03 11:26:42 · 2136 阅读 · 0 评论 -
C/C++轻量级并发TCP服务器框架Zinx-游戏服务器开发001:zinx框架的安装
注意这里,GetChannelInfo()只负责获取stdin,然后下一步交给回显poCmd做。这里需要一个poCmd,因此在3.2定义类的时候直接创建new了一个对象。从哪里输入的不用管,只需要关心参数。原创 2023-11-03 08:08:10 · 594 阅读 · 0 评论