https://github.com/cloudwu/skynet
Skynet 框架之菜鸟手册
一个轻量级的网络游戏服务器
Ver 0.1.1
wangdali
2014-04
1 / 27
https://github.com/cloudwu/skynet
2 / 27
https://github.com/cloudwu/skynet
目录
一、 简介 ................................................................................................................................... 4
二、环境........................................................................................................................................... 4
1、VMware 下载与安装 .......................................................................................................... 4
2、Ubuntu 下载与安装 ........................................................................................................... 5
3、Ubuntu 环境配置 .............................................................................................................. 6
三、下载........................................................................................................................................... 9
1、git 使用 ............................................................................................................................... 9
2、github.com ........................................................................................................................ 12
四、编译......................................................................................................................................... 13
1、Makefile 介绍 .................................................................................................................... 13
2、核心程序介绍 ................................................................................................................... 17
五、例子......................................................................................................................................... 19
1、运行例子 ........................................................................................................................... 19
2、代码分析 ........................................................................................................................... 21
六、原理......................................................................................................................................... 25
1、启动流程 ........................................................................................................................... 25
2、调用服务 ........................................................................................................................... 26
七、服务......................................................................................................................................... 26
1、用 C 语言写一个服务 ....................................................................................................... 26
2、用 Lua 语言写一个服务 ................................................................................................... 27
3 / 27
https://github.com/cloudwu/skynet
一、 简介
Skynet 是一个轻量级的网络服务器架构,并不是一个完整的游戏
服务端。是服务端的最底层框架,和游戏有关的各种服务都是基于架
构之上开发的。所以别想着拿 Skynet 改改就能作为网络游戏(包括
私服),跑起来,甚至怎么监听客户端连接的服务都要你自己来写。
Skynet 的功能只有管理好服务(加载与调度)和服务之间的调用(请
求与响应)。Skynet 今后大部分都要在 lua 脚本下开发,只有需要考
虑性能的模块才用 C 语言开发成 lua 库,提供给 lua 调用。现在 Skynet
提供给 lua 使用的库还不多,期望以后这些库多了,可以方便、简单
的完成一个网络游戏服务端的开发。
二、环境
1、VMware 下载与安装
我们既然是菜鸟,就在虚拟中安装 Linux 好了。首先我们得先选
择一款虚拟机软件,有微软的 Virtual PC 这个是免费的;甲骨文的
VirtualBox 也是免费的;我们选择最常用的 VMware 好了,这有两个
4 / 27
https://github.com/cloudwu/skynet
版本,一个叫 VMware Player,这个是免费的,可以在官方网站
http://www.vmware.com 中下载,另一个叫 VMware Workstation,这
个是收费的。以上的几个随便选一个都可以用,不过我们菜鸟还是不
差钱,就选收费的 VMware Workstation 好了。
安装 VMware Workstation 要写好多页纸,这里咋们就环保了吧,
不懂安装的请找谷歌或者百度帮忙。现在 VMware Workstation 最高版
本是 10 版。我们就选择这个了。
2、Ubuntu 下载与安装
Skynet 目前可以在以下操作系统上编译:1、Linux; 2、FreeBSD;
3、Mac OS X 下编译使用。需要提醒的是不能在咱们菜鸟最喜欢的
Windows 下编译使用,虽然有老鸟在干这个事,但暂时没有可用的版
本。
咱菜鸟还是选择 Linux 下使用好了,这个网上能查到的资料多,
不懂得都能搜索到。既然决定用 Linux 我们就选择一个发行版简单点,
常用的发行版有:1、RedHat 红帽这个很有名,咱就不用了,你非要
用我也不管,后面的内容可能会不适用;2、CentOS 这个就是 RedHat,
不介绍了;3、Ubuntu 这个可是十大受欢迎发行版之首。咱就选它好
了,简单易用。
Ubuntu 很友好的给咱们国内定制了一个版本,叫 Kylin,中文叫
麒麟。下载地址: http://www.ubuntu.com/desktop/ubuntu-kylin-zh-CN
根据你的 Windows 版本选择麒麟的版本,有 32 位和 64 位之分。
5 / 27
https://github.com/cloudwu/skynet
32 位的 Windows 下不能装 64 位版本的麒麟。所以请看在 windows
“计算机”处右键“属性”查看版本。
我 的 是 “ 64 位 版 操 作 系 统 ” , 对 应 下 载
ubuntukylin-14.04-desktop-amd64.iso 。
在 VMware 中安装 Ubuntu 的文章网上很多,而且安装过程很简
单,这里就不叙述了。
3、Ubuntu 环境配置
Ubuntu 安装好之后,还需要安装一些程序才能编译 Skynet,所
以我们先在这里配置一下,第一步我们需要启动一个命令行的“终端”,
用命令来安装简单一点。
因为 VMware 自动安装的原因,我装完是英文的,你可以把它设
置成中文。
里面找到
设置用户的语言为汉语
6 / 27
https://github.com/cloudwu/skynet
首先我们得找到“终端”并启动它。我们启动 Ubuntu 在虚拟机
中屏幕的左上角会看到这个图标:
请点击一下,新安装这里面没有曾经启动和使用过的文件列表。我们
需要选择:
第二
个
,这个时候会看到
这里面就是所有你已经安装的软件列表了,相当于 Window 的“开始”
—〉“程序”。上面提示还有 76 个结果没有显示出来,点一下把他们
都显示出来。找到
这个就是我们需要的终端了。然
7 / 27
https://github.com/cloudwu/skynet
后屏幕左边的菜单可以看到
右键点击一下,把“终端”“锁定到启动器”这样以后就不用到里面
找“终端”了,相当 Windows 把图标锁定到任务栏。桌面上还可以
看到“终端”的窗口,类似于:
好了,我们可以回到正题了,首先我们把 Ubuntu 更新到最新版
本,在“终端”输入:
$ sudo apt-get update
意思是叫你输入 loong 这个用户的密码(我安装的时候起名叫
loong,意为龙,你可以用别的名字,一定要记住密码),用来启动超
8 / 27