游戏思考26:游戏服务器压力测试文档(新增linux相关命令,02/10未完待续)

这篇具有很好参考价值的文章主要介绍了游戏思考26:游戏服务器压力测试文档(新增linux相关命令,02/10未完待续)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、压力测试关注点

①流量
②内存
③一些主要的功能才做压力测试,比如同时注册最大在线战斗地图移动数据存取等。
④2个压力宏观数据保持不变:
a. 各接口的压力比例不变, 首先从同类型游戏或者本游戏内测阶段,日志插桩,收集各个接口的调用比例;然后,将接口比例转化为场景比例,如同时会有个2%完结登陆、15%玩家战斗、20%玩家拉取好友列表、10%玩家赌博(一个手游场景例子)。
b.玩家平均每分钟操作频率不变。同样在内测阶段收集玩家平均操作频率。
因此,压力测试目标就转变成了如何模拟符合ab数据的压力。

⑤服务器配置信息

  • 静态信息
1)CPU核数
2)内存
3)操作系统
4)带宽
5)网卡
6)硬盘
  • 动态信息
    1)CPU利用率监控
    2)内存监控
    3)内网带宽监控(内网出带宽、内网入带宽、内网出包量、内网入包量、TCP连接数)

游戏思考26:游戏服务器压力测试文档(新增linux相关命令,02/10未完待续)

⑥其他指标
●吞吐量:固定时间间隔内的处理完毕事务个数。通常是1秒内处理完毕的请求个数,单位:事务/秒(tps)。

平均吞吐量:一段时间内吞吐量的平均值。无法体现吞吐量的瞬间变化。

峰值吞吐量:一段时间内吞吐量的最大值。是用来评估系统容量的重要指标之一。

最低吞吐量:一段时间内吞吐量的最小值。如果最小值接近0,说明系统有“卡”的现象。

70%的吞吐量集中区间:通过统计15%和85%的吞吐量边界值,计算出70%的吞吐量集中区间。区间越集中,吞吐量越稳定。

响应时间:一次事务的处理时间。通常指从一个请求发出,到服务器进行处理后返回,再到接收完毕应答数据的时间间隔,单位:毫秒。

平均响应时间:一段时间内响应时间的平均值。无法体现响应时间的波动情况。

中间响应时间:一段时间内响应时间的中间值,50%响应时间,有一半的服务器响应时间低于该值而另一半高于该值。

90%响应时间:一段时间内90%的事务响应时间比此数值要小。反应总体响应速度,和高于该值的10%超时率。是用来评估系统容量的重要指标之一。

最小响应时间:响应时间的最小值。反映服务最快处理能力。

最大响应时间:响应时间的最大值。反映服务器最慢处理能力。

CPU占用率:1-CPU空闲率,表示CPU被使用情况,反映了系统资源利用情况。

二、计算最耗时的加载操作

1)从数据库读取数据,对加载的类型进一步划分各种类型,计算最耗时操作

2)查看CPU随着在线人数的变化所占百分比

可以看出从晚上8时到次日下午14时,各个服务器CPU变化区间是固定的。

3)查看内存变化

这个同样是晚上8时到下午14时,随着机器人数量变化而生成的图表。
(内存处于一个区间段,说明程序没有内存泄漏。)

4)备注

对于具体的内存CPU所占的百分比,各个游戏之间对比是没有任何意义的,设计和数据的存储方式和存储结构都不相同,而这样的测试目的是在于了解 针对本款游戏在线玩家人数与服务器所占内存,CPU之间的一个关系,为了上线更好地控制每个服承载的最大人数做准备。

三、MMORPG服务器对于压力测试来说,设计的特点

1)MMORPG共同特点

①百分之八十以上的开发成本消耗在正常的逻辑处理上,而百分之八十以上的性能消耗点在和视野有关的模块上。

  • 举例
    比如《御龙在天》,移动包技能包在CPU上的消耗占比之和在30%以上;战斗做的好的《天涯明月刀》在群战时,仅技能逻辑消耗就在50%以上;另一款腾讯在研MMORPG,因为有后台寻路体素判定行为树定义的复杂AI以及分段技能设计,CPU消耗比同类产品要高,统计如下:
1)场景心跳 75.5%
2)战斗请求:11.3%
3)移动请求:3.8%
4)其他 : 6.6%
5)剩余客户端请求:2.8%

2)MMORPG后台的两大驱动力

  • ①消息驱动:
    包含玩家上行协议的驱动和其他server的消息驱动,这部分的主要耗时来源时战斗请求包移动请求包,战斗和移动占这部分80%的性能消耗

  • ②定时器:
    包含各大系统的心跳逻辑以及各个OBJ的心跳逻辑,在承载5000个玩家在线时,怪物和NPC往往要打到10W个之多,因此定时器的主要耗时来源是场景心跳(AI\CD检查\扫敌等),这部分占整个CPU耗时处理的75%左右

  • ③这两部分组成了灰色区域,累计占比高达百分之90%。共同点是有很少的跨场景操作,以及少量公共数据访问(比如邮件、帮会等)。而百分之10%是UI上的各种请求

3)LuaJIT的备注

①LuaJIT有2GB内存的限制(截至目前,官方的最新版本对64位支持是默认关闭的,不建议在release阶段使用),如果线程过多,有可能出现内存不够的情况。
②如果在移动、技能、AI的处理上没有过多使用Lua,那么建议还是使用LuaJIT保持效率。
③如果多线程逻辑过于依赖Lua,那么使用原生的Lua保持多线程的运行也是不错的选择

四、各种测试方法的测评

1)现网数据预估

  • 背景
    现网数据预估是根据压力测试过程中的部分数据,对未来大量用户访问的情况机型预估。图中的横轴代表现吞吐量纵轴代表CPU压力
  • 方法流程
    图中绿色的部分代表当前的服务器压力,当收集一段时间数据之后,可以模拟一条曲线。假设对服务器的上线成本预估是80%,可以通过曲线拟合的方式推测出现网的能力是多少,也从而推断出最大上限是多少。
  • 优缺点
    ①优点:测试结果方便可视
    ②缺点:通常游戏服务器都是比较复杂的,这种方式只适合简单的服务器拟合,复杂服务器数据就不太准确。

2)真人买量压测

  • 方法流程
    真人压测就是通过邀请一定数量的真实用户来玩游戏,从而对服务器达到一个测试效果。这种方式他最大特点在于用户的行为相对是最真实的,因为用户的使用完全不会受到限制,和线上一个真实用户一样。目前游戏上线过程中的“封测”,就可以被认为是一种真人压测,可以帮助开发者发现一些性能问题。
  • 缺点
    ①暴露出的性能问题有限:许多经过封测的游戏到上线还会产生问题,原因之一就是封测人数通常还是太少,虽然有几百或者几千用户在玩,但是并发并不够,不足以暴露服务端性能问题;
    ②不适合调优:服务器性能测试不光需要暴露服务器的问题,暴露问题之后还需要不断的回归调优,但是真人是无法完全重复这些行为方式的。

3)接口测试

  • 方法流程
    服务器方面的接口测试与传统意义上的接口测试略有不同,当开发人员需要对一套服务器进行评估,但是又时间不足的情况下,我们可以考虑选择一些具有代表性的功能,以及一些高风险功能进行测试,通过以小见大的方式,来评估整套服务器性能。
  • 缺点
    主要问题就是无法遍历整个服务器的接口,难以避免一些微小的问题。

4)录制回放

  • 方法流程
    “录制”就是通过抓取数据包的方式,来获取游戏时的协议,比如用户登录游戏时抓取登录包;“回放”即把这些捕获的协议重新发送给服务端,这样理论上就可以通过工具放大协议量级达到性能测试的目的,比如将之前录制的登入协议扩大1w倍给服务器,这样就模拟了1w人同时登入的情况。

  • 缺点
    游戏的协议交互非常复杂,如果只是单纯的放大数据包,对于服务器是产生不了多大的压力的。这类方法比较适合固定输入输出服务类型的测试

5)机器人测试

  • 方法流程
    机器人模拟测试是对以上各种测试做了一个平衡, 通过高还原真实玩家的用户行为,模拟高并发场景,从而得到类似很多人同时游戏的测试效果。
  • 机器人模拟的优势
    并发性不受限制,从1W到10W,压力能够自主设置;
    可以反复执行,便于性能调优回归;
    ③实现7*24小时不断监控,在开发提交代码之后,版本在自动编译之后就跑新的测试,这样每天都能进行性能监控,在调优方面,完全地进行一个重复性测试,可以不断的进行回归和调优。这个方法的问题就在于机器人模拟需要专人开发,对测试者的开发能力,分析能力都有一个比较高的要求。

五、linux测试相关命令

  • 原文链接传送门:Linux 大牛,Netflix 高级性能架构师 Brendan Gregg的博客

0)铺垫命令及火焰图使用

  • 火焰图介绍及链接
    ①https://blog.csdn.net/gatieme/article/details/78885908
    ②https://zhuanlan.zhihu.com/p/85654612
  • free
  • ping
  • vmstat(VirtualMeomoryStatistics,虚拟内存统计)
  • iostat 用于报告中央处理器(CPU)统计信息和整个系统、适配器、tty 设备、磁盘和 CD-ROM 的
  • 输入/输出统计信息
  • dstat 显示了cpu使用情况,磁盘io情况,网络发包情况和换页情况,输出是彩色的,可读性较强,相对于vmstat和iostat的输入更加详细且较为直观。
  • pidstat 主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存、设备IO、任务切换、线程等。
  • top 命令的汇总区域显示了五个方面的系统性能信息:负载、进程状态、cpu使用率、内存使用、
    交换分区。
  • iotop LINUX进程实时监控工具,界面风格类似top命令
  • htop 是Linux系统中的一个互动的进程查看器,一个文本模式的应用程序(在控制台或者X终端中),需要ncurses。
  • mpstat Report processors related statistics. 报告CPU的统计信息。
  • netstat 用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
  • ps 显示当前进程的状态
  • strace Trace system calls and signals。跟踪程序执行过程中产生的系统调用及接收到的信号,帮助分析程序或命令执行中遇到的异常情况。
  • ltrace A library call tracer 跟踪进程调用库函数的情况
  • uptime 能够打印系统总共运行了多长时间和系统的平均负载,uptime命令最后输出的三个数字的含义分别是1分钟,5分钟,15分钟内系统的平均负荷
  • lsof (list open files)是一个列出当前系统打开文件的工具。
  • perf 是Linux kernel自带的系统性能优化工具。优势在于与Linux Kernel的紧密结合,它可以最先应用到加入Kernel的new feature,用于查看热点函数,查看cashe miss的比率,从而帮助开发者来优化程序性能。
  • tcpdump
  • sar
  • blktrace
    游戏思考26:游戏服务器压力测试文档(新增linux相关命令,02/10未完待续)

1)CPU

  • 问题 1:top 输出的利用率信息是如何计算出来的,它精确吗?

  • 问题 2:ni 这一列是 nice,它输出的是 cpu 在处理啥时的开销?

  • 问题 3:wa 代表的是 io wait,那么这段时间中 cpu 到底是忙碌还是空闲?

(1)平均负载
(2)CPU上下文切换
(3)遇到CPU利用率高怎么排查
(4)相关工具
  • ①vmStat -Sm 1
    r : 表示在这个CPU上正在执行的和等待执行的进程数量
    (r比较高表示CPU处于饱和状态)
  • ②pidstat 1
    对比top能滚动打印每个进程使用CPU的情况,这里的%CPU是可以超过100的,
    %400等于4个%100运行的CPU
  • ③mpstat -p ALL 1
    将每个CPU分解到各个状态的时间打印出来
    ①若用户态的CPU百分比占比高达100%,表明单线程遇到瓶颈
  • ON_CPU火焰图
    (1)使用说明
    ①纵轴代表调用栈的深度(栈桢数),用于表示函数间调用关系:下面的函数是上面函数的父函数。
    ②横轴代表调用频次,一个格子的宽度越大,越说明其可能是瓶颈原因。
    ③不同类型火焰图适合优化的场景不同,比如 on-cpu 火焰图适合分析 cpu 占用高的问题函数,off-cpu 火焰图适合解决阻塞和锁抢占问题
    (2)无意义的事情:
    ①横向先后顺序是为了聚合,跟函数间依赖或调用关系无关;
    ②火焰图各种颜色是为方便区分,本身不具有特殊含义
    (3)使用步骤
    使用步骤:
    ①采集堆栈:perf、System Tap、sample-bt
查看CPU和内存占用前十的进程
ps aux|head -1;ps -aux | sort -k3nr | head -n 10 //查看前10个最占用CPU的进程
ps aux|head -1;ps -aux | sort -k4nr | head -n 10 //查看前10个最占用内存的进程

1、安装perf:我目前的服务器发行版是Ubuntu 16.04.6 LTS因此需要先安装perf才能使用,该工具由linux-tools-common提供,但是它需要安装后面的依赖。

#ubantu安装
root@master:~# apt install linux-tools-common linux-tools-4.4.0-142-generic linux-cloud-tools-4.4.0-142-generic -y

root@master:~# perf -v #显示perf的版本
perf version 4.4.167

#centos安装
yum install perf

2、在安装完成时候,我们就可以对上图CPU使用率最高的进程ID为25633的进程进行采样分析。首选我们采集一下该进程的调用栈信息:

root@master:~# sudo perf record -F 99 -p 25633 -g -- sleep 30
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.039 MB perf.data (120 samples) ]

3、参数说明
这个命令会产生一个大的数据文件,取决与你采集的进程与CPU的配置,如果一台服务器有16个 CPU,每秒抽样99次,持续30秒,就得到 47,520 个调用栈,长达几十万甚至上百万行。生成的数据采集文件在当前目录下,名称为perf.data

1)perf record表示记录,命令可以从高到低排列统计每个调用栈出现的百分比
2)-F 99表示每秒99次,
3)-p 25633是进程号,即对哪个进程进行分析,
4)-g表示记录调用栈,
5)sleep 30则是持续30秒

可以简单在linux下展示每个调用栈出现的百分比

root@master:~# sudo perf report -n --stdio

游戏思考26:游戏服务器压力测试文档(新增linux相关命令,02/10未完待续)

②解析数据:statckcollapse/pl(用perf script工具对perf.data进行解析,生成perf.unfold)

# perf script -i /root/perf.data &> /root/perf.unfold
或
perf script -i perf.data &> perf.unfold

用 stackcollapse-perf.pl 将 perf 解析出的内容 perf.unfold 中的符号进行折叠

#安装stackcollapse
git clone https://github.com/brendangregg/FlameGraph.git
#拷贝stackcollapse-perf.pl和flamegraph.pl到目标机器上。
chmod +x flamegraph.pl
chmod +x stackcollapse-perf.pl

# ./stackcollapse-perf.pl /root/perf.unfold &> /root/perf.folded  //这里折叠堆栈

③生成火焰图: flamegraph.pi

./flamegraph.pl /root/perf.folded > /root/perf.svg
或
./flamegraph.pl perf.folded > perf.svg

浏览器打开。

  • ⑤OFF-CPU火焰图

  • ⑥内存火焰图

  • ⑦显示lua堆栈(chatgpt说的,我没试过)

  1. 安装perf工具
  2. 在终端输入以下命令:perf record -g -p $(pgrep lua)
  3. 运行lua程序
  4. 在终端输入以下命令:perf script | stackcollapse-perf.pl | flamegraph.pl > lua.svg
  5. 在浏览器中打开lua.svg文件,即可查看火焰图
    在perf record命令中加入–call-graph dwarf参数,即可在火焰图中看到lua的堆栈信息。修改后的命令如下:
    perf record -g --call-graph dwarf -p $(pgrep lua)
    $(pgrep lua)是一个命令,用于查找正在运行的名为"lua"的进程的进程ID。在这里,它被用作perf record命令的参数,以便perf工具可以记录正在运行的lua程序的性能数据。如果这个进程是C++写的,只是调用接口的时候使用lua,那么在perf工具记录性能数据时,只能看到C++的堆栈信息,无法看到lua的堆栈信息。在perf record命令中加入–call-graph dwarf参数,即可在火焰图中看到lua的堆栈信息。修改后的命令如下:
    perf record -g --call-graph dwarf -p $(pgrep lua)
    -g: 开启调用图(call graph)功能,记录函数调用关系
    –call-graph dwarf: 使用dwarf调试信息来生成调用图
    -p $(pgrep lua): 指定要记录的进程ID,这里使用pgrep命令查找名为"lua"的进程的进程ID

2)内存

(1)内存说明:虚拟内存和物理内存
(2)内存中的buffer和cache
(3)内存检测工具
(1)vmstat统计虚拟内存使用情况
    • 使用举例
      1)动态查看内存变化
      游戏思考26:游戏服务器压力测试文档(新增linux相关命令,02/10未完待续)
      2)查看内存量和使用量
      游戏思考26:游戏服务器压力测试文档(新增linux相关命令,02/10未完待续)
  • 参数意义

swpd  交换出的内存量
free 空闲的可用内存
buff 用于缓冲缓存的内存
cache 用于页缓存的内存
si   换入的内存(换页)
so 换出的内存(换页)
  • 注释
    若so和si一直为非0,说明有大量换页的操作,用top或ps可以看每个进程使用的内存

  • 命令

Usage:
 vmstat [options] [delay [count]]

Options:
 -a, --active           active/inactive memory
 -f, --forks            number of forks since boot
 -m, --slabs            slabinfo
 -n, --one-header       do not redisplay header
 -s, --stats            event counter statistics 输出列表
 -d, --disk             disk statistics
 -D, --disk-sum         summarize disk statistics
 -p, --partition <dev>  partition specific statistics
 -S, --unit <char>      define display unit  ### 单位,按照多少内存对齐k(1000),K(1024),m(1000000),M(1048576) bytes
 -w, --wide             wide output
 -t, --timestamp        show timestamp

 -h, --help     display this help and exit
 -V, --version  output version information and exit
 
For more details see vmstat(8).
(2)PSI略过,需要linux版本4.20
(3)PS 查看进程报错内存使用的细节
  • 使用
    建议用 ps aux
  • 注释
    %MEM 主存使用(物理内存\RSS)占总内存的百分比
    RSS:常驻集合大小(KB),显示内存使用量,包括如系统库在内的共享内存端,可能会被几十个进程映射,这里重复计算了部分共享内存
    VSZ:虚拟内存大小
root:# ps aux

USER      PID       %CPU    %MEM    VSZ    RSS    TTY    STAT    START    TIME    COMMAND

smmsp    3521    0.0    0.7    6556    1616    ?    Ss    20:40    0:00    sendmail: Queue runner@01:00:00 f

root    3532    0.0    0.2    2428    452    ?    Ss    20:40    0:00    gpm -m /dev/input/mice -t imps2

htt    3563    0.0    0.0    2956    196    ?    Ss    20:41    0:00    /usr/sbin/htt -retryonerror 0

htt    3564    0.0    1.7    29460    3704    ?    Sl    20:41    0:00    htt_server -nodaemon

root    3574    0.0    0.4    5236    992    ?    Ss    20:41    0:00    crond

xfs    3617    0.0    1.3    13572    2804    ?    Ss    20:41    0:00    xfs -droppriv -daemon

root    3627    0.0    0.2    3448    552    ?    SNs    20:41    0:00    anacron -s

root    3636    0.0    0.1    2304    420    ?    Ss    20:41    0:00    /usr/sbin/atd

dbus    3655    0.0    0.5    13840    1084    ?    Ssl    20:41    0:00    dbus-daemon-1 --system
(4)TOP查看内存和CPU占比

常用命令
-o表示按照什么标准排序

top -0 %MEM
top -o %CPU
(5)pmap 内存映射相关,共享内存相关(略)
(7)perf工具

3)文件IO性能监控

(1)I/O的两种方式(缓存I/O和直接I/O)
(2)监控磁盘I/O的命令

4)网络IO性能监控

(1)性能指标
(2)网络信息
(3)相关命令

5)其他工具

(1)nmon性能监控
(2)glances系统监控
(3)w
(4)日志监控工具tail和mutitail
(5)火焰图种类说明

游戏思考26:游戏服务器压力测试文档(新增linux相关命令,02/10未完待续)文章来源地址https://www.toymoban.com/news/detail-429601.html

到了这里,关于游戏思考26:游戏服务器压力测试文档(新增linux相关命令,02/10未完待续)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2023最新网站服务器CC压力测试系统源码 前后端全开源

    CC 攻击是一种 DDoS(分布式拒绝服务),它似乎比其他 DDoS 攻击更具技术性。在这种攻击中,看不到假IP,看不到特别大的异常流量,但会导致服务器无法正常连接。今天介绍的就是一款CC压力测试系统 CC攻击的原理是攻击者控制部分主机不断向对方服务器发送大量数据包,导

    2024年02月16日
    浏览(30)
  • c++ http服务器之Apache工具ab压力测试(nginx与brpc)

    ab全称为:apache bench,官方注释为: Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求。apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也

    2024年02月07日
    浏览(34)
  • Apache JMeter 3.1压力测试监控服务器数据(cpu、内存、磁盘io等)

    监控服务器CPU、内存、磁盘、网络等相关资源需要使用3.1版本并使用以下插件 客户端:JMeterPlugins-Standard和JMeterPlugins-Extras 服务端:ServerAgent 官网链接:https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-3.1.zip 解压安装包,进入 bin 目录,点击 jmeter.bat 启动 Jmeter 1.1 添加线程组 线

    2024年01月18日
    浏览(36)
  • 使用JMeter做压力测试:常用插件、服务器硬件监控_jmeter的吞吐量插件

    Bytes Throughput Connect Times Latency Hits/s 安装好这些插件后,就可以看到上面这些监听器。 03 配置插件的监听器 如果可以配置如下三个监听器,就表示插件已经安装成功!执行压力测试,就可以看见压测的每秒事务数、响应时间,活动线程数等压测结果。 响应时间:jp@gc - Respon

    2024年04月17日
    浏览(37)
  • 部标JT808车辆定位监控平台单服务器13.6万接入压力测试记录(附源码)

    之前经常有人问平台能支持多少设备同时在线,由于事情多没时间做。最近刚好有机会做下压力测试。在不间断的连续压测三天,最终结果为13.6万TCP连接,30秒上报频率。 测试平台同时接入设备数量与并发处理能力。 一台主服务器用于部署车辆定位平台,是常见的8核16G内存

    2024年04月12日
    浏览(31)
  • 自动化测试实战篇(8),jmeter并发测试登录接口,模拟从100到1000个用户同时登录测试服务器压力

    进程是资源分配最小单位,线程是程序执行的最小单位; 每个进程内部会有N个线程,但至少要有1个线 程。 比如公司就是一个进程,公司的员工就是线程。 线程占用的资源要⽐进程少很多。 线程之间通信比进程更方便 并发是指在一个时间段内有多个进程在执行 并行指的是

    2024年02月16日
    浏览(35)
  • Nginx代理服务器、HTTP调度、TCP/UDP调度、Nginx优化、HTTP错误代码、状态页面、压力测试

    Top 案例1:Nginx反向代理 案例2:Nginx的TCP/UDP调度器 案例3:Nginx常见问题处理 1.1 问题 使用Nginx实现Web反向代理功能,实现如下功能: 后端Web服务器两台,可以使用httpd实现 Nginx采用轮询的方式调用后端Web服务器 两台Web服务器的权重要求设置为不同的值 最大失败次数为2,失败

    2024年01月21日
    浏览(32)
  • C/C++轻量级并发TCP服务器框架Zinx-游戏服务器开发002:框架学习-按照三层结构模式重构测试代码+Tcp数据适配+时间轮定时器

    三层结构重构原有功能 自定义消息类,继承UserData,添加一个成员变量szUserData 定义多个Role类继承Irole,重写ProcMsg函数,进行不同处理 定义protocol类,继承Iprotocol,重写四个函数,两个函数时原始 数据和用户数据之间的转换;另两个用来找消息处理对象和消息发 送对象。 定

    2024年02月21日
    浏览(35)
  • Zinx框架-游戏服务器开发002:框架学习-按照三层结构模式重构测试代码+Tcp数据适配+时间轮定时器

    三层结构重构原有功能 自定义消息类,继承UserData,添加一个成员变量szUserData 定义多个Role类继承Irole,重写ProcMsg函数,进行不同处理 定义protocol类,继承Iprotocol,重写四个函数,两个函数时原始 数据和用户数据之间的转换;另两个用来找消息处理对象和消息发 送对象。 定

    2024年02月05日
    浏览(41)
  • vsCode无法连接服务器问题解决及思考

    早上刚打开电脑,准备开始一天的工作。但是发现VSCode无法连接上我的虚拟机了,导致无法工作了,这让我十分头疼。最终花了将近一天的时间将问题解决,但是其中的过程走了不少弯路,浪费了不少时间,也进行了反思。我们作为开发人员,应该要用软件思维去理解这款产

    2024年03月14日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包