skynet下载、编译、运行

Skynet is a lightweight online game framework which can be used in many other fields.Skynet 是一个轻量级的网络游戏框架,可以在其他许多领域使用。本篇用于记录Skynet的下载编译和运行过程

本人环境为基于CentOS下的教程,如果使用其他版本请自行参考

框架地址

https://github.com/cloudwu/skynet

自己码云搬运的链接(如果github连不上的话)
https://gitee.com/Nicer_feng/skynet

安装过程

git clone https://github.com/cloudwu/skynet.git

连不上可以用我搬运的

git clone https://gitee.com/Nicer_feng/skynet.git

安装必要工具

yum install gcc			#用于编译源码
yum install autoconf	#用于编译源码
yum install readline-devel  #编译lua会用到

编译源码

[root@feng1 study]# cd skynet/
[root@feng1 skynet]# make linux

运行Skynet服务器

make linux

安装时候如果报错,说明gcc版本有点低了,可以参考这篇升级一下gcc版本再编译

In file included from lstring.c:23:0:
../../skynet-src/atomic.h:25:23: fatal error: stdatomic.h: No such file or directory
 #include <stdatomic.h>
                       ^
compilation terminated.

编译成功后再次运行

[root@feng1 skynet]# ./skynet
Need a config file. Please read skynet wiki : https://github.com/cloudwu/skynet/wiki/Config
usage: skynet configfilename
[root@feng1 skynet]# 

直接启动则提示我们需要指定一份配置文件,在"./skynet/example"下有一个config文件是KV数据库的配置文件,我们带上这个配置文件再启动一次skynet

image-20211025155409834

[root@feng1 skynet]# ./skynet examples/config
[:01000002] LAUNCH snlua bootstrap
[:01000003] LAUNCH snlua launcher
[:01000004] LAUNCH snlua cmaster
[:01000004] master listen socket 0.0.0.0:2013
[:01000005] LAUNCH snlua cslave
[:01000005] slave connect to master 127.0.0.1:2013
[:01000004] connect from 127.0.0.1:56484 4
[:01000006] LAUNCH harbor 1 16777221
[:01000004] Harbor 1 (fd=4) report 127.0.0.1:2526
[:01000005] Waiting for 0 harbors
[:01000005] Shakehand ready
[:01000007] LAUNCH snlua datacenterd
[:01000008] LAUNCH snlua service_mgr
[:01000009] LAUNCH snlua main
[:01000009] Server start
[:0100000a] LAUNCH snlua protoloader
[:0100000b] LAUNCH snlua console
[:0100000c] LAUNCH snlua debug_console 8000
[:0100000c] Start debug console at 127.0.0.1:8000
[:0100000d] LAUNCH snlua simpledb
[:0100000e] LAUNCH snlua watchdog
[:0100000f] LAUNCH snlua gate
[:0100000f] Listen on 0.0.0.0:8888
[:0100000f] lua call [100000e to :100000f : 3 msgsz = 36] error : 
........
[:01000009] KILL self
[:01000002] KILL self

启动报错

但是我这边启动的时候出了点意外

image-20211025155956303

可以看到是在监听8888端口后报的错,回忆了一下发现我服务器是运行了宝塔的,怎么能不报错呢?

image-20211025160104124

找了一下发现这个8888是在./skynet/examples/main.lua中配置的,顺手改个9999试试看

image-20211025161056686

再次启动,舒服了

image-20211025161118807

启动服务端以后我们再启动一个客户端(CS模型不在多说了),Skynet下也有客户端的例子,在examples/client.lua中

启动客户端

lua exaples/clinet.lua

image-20211025164254147

如果上面这个报错表示可能服务器没有安装lua环境、或者lua版本小于5.3,我们可以换一个命令启动如下

./3rd/lua/lua examples/client.lua

启动以后,打印表示每5秒会回复心跳包

image-20211025164153214

在./skynet/examples/client.lua文件中可以看到如果我们回复hello,服务器会返回world

image-20211025164123254

往服务端发消息

输入hello返回

image-20211025164548371

服务端打印

image-20211025164606445

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Skynet Debug是指对Skynet系统进行调试和排错的过程。Skynet是一个开源的高性能分布式游戏服务器框架,为开发者提供了一套简单易用、高效稳定的游戏服务器解决方案。 在进行Skynet Debug时,首先需要通过查看系统日志来定位问题。Skynet系统会记录各个模块的运行情况和错误信息,开发者可以通过这些日志信息来判断是否有错误发生,并定位出错的位置。 其次,开发者可以使用调试工具来进行线上调试。Skynet提供了丰富的调试工具,比如skynet.abort函数可以在运行时终止服务,并打印出完整的调用栈信息,帮助开发者快速定位错误。此外,还可以使用skynet.trace函数跟踪消息的传递流程,观察各个模块之间的交互情况,以找出可能存在的问题。 另外,对于一些复杂的问题,开发者还可以使用代码注入的方式进行调试。Skynet提供了插件机制,可以动态加载自定义的模块,并在运行时注入代码,以修改或监控系统运行过程中的一些关键点,帮助开发者检测潜在的问题。 在调试过程中,需要注意一些常见的问题。比如,可能因为不同模块间的消息传递顺序不一致而导致问题;还可能出现资源泄露或内存溢出等问题;另外,网络通信的稳定性和数据传输的正确性也需要关注。 总之,Skynet Debug是开发者对Skynet系统进行调试和排错的重要过程,通过使用系统日志、调试工具以及代码注入等方法,可以帮助开发者定位问题并解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

上上签i

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

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

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

打赏作者

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

抵扣说明:

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

余额充值