![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
skynet
mick_seu
这个作者很懒,什么都没留下…
展开
-
【Skynet】C头文件不要定义函数?
参考自:函数实现不放在头文件的原因,及何时可以放头文件的情况(绿色冰点)对于C/C++我们很早就被告知不要在头文件里定义函数,这样不好。今天学习Skynet时,发现里面有很多函数都定义在头文件里?很是疑问,于是有了这篇文章。把函数定义在头文件有哪些主要缺点?1、不利于代码理解和维护:通常,头文件被用来唯一指定接口,且多少提供一些文档来说明如何使用在该文件中声明的组件原创 2017-09-25 15:57:24 · 4109 阅读 · 1 评论 -
Skynet安装及配置
Skynet是云风写的轻量级游戏服务器。首先Git源代码。按照提示 make linux 进行编译。遇到一些问题:1、缺少autoconfsudo apt-get install autoconf2、缺少readlinesudo apt-get install libreadline-dev安装完后进入 skynet,重新 make li原创 2017-09-03 17:43:23 · 2205 阅读 · 0 评论 -
【Skynet】文件传输升级版
上一个socket文件传输过于简单,师傅让我进一步改进,定义包结构,让文件的传输过程更加自由。该实现可以参考./examples/client.lua ,这里面有数据的打包与解包。这里我设计了一个简易的报文结构。Length:即Type+Content的长度。Type:将报文分成两种,一种为信息报文,包含文件名及文件大小,以字符串"01"表示,一种为数据报文,以字符串"原创 2017-09-19 14:33:39 · 739 阅读 · 0 评论 -
【Skynet】socket与多服务
回顾之前服务器端的TCP连接:socket.listen(address, port) 监听一个端口,返回一个 id ,供 start 使用。socket.start(id , accept) accept 是一个函数。每当一个监听的 id 对应的 socket 上有连接接入的时候,都会调用 accept 函数。这个函数会得到接入连接的 id 以及 ip 地址。你可以做后续操作。原创 2017-09-21 21:13:25 · 1719 阅读 · 0 评论 -
【Skynet】Sproto初学与应用
参考自:Skynet基础入门例子详解(5)(魔王魂影)Sproto是云风专门为Skynet开发的轻量协议。借鉴官方例子,我们可以在 ./examples/proto.lua 中添加自己的一个 “say” 协议local sprotoparser = require "sprotoparser"local proto = {}proto.c2s = sprotopar原创 2017-09-20 21:54:08 · 3853 阅读 · 0 评论 -
【Skynet】Socket源码剖析二
socket_server 层使用简单封装后的 epoll ,向上提供一些列 socket_server_*** 的API。skynet_socket封装:为了进一步适用于Skynet框架,又进行一步对socket_server进行了封装,所有常用的接口都封装在skynet_socket.c 。相比 socket_server.c 的1600多行代码,skynet_socket.c 则只有200多...原创 2017-10-10 22:56:45 · 863 阅读 · 0 评论 -
【Skynet】Socket源码剖析一
参考了:Skynet服务器框架(六) Socket服务源码剖析和应用(linshuhe1的专栏)以及Skynet 源码学习 -- Socket Server 和 Skynet_socket(cchd0001的专栏)用了Skynet下的Socket接口后,越发想看看它的底层实现。和我之前想的一样,Skynet底层的网络并发在Linux下使用的正是 epoll。./skynet-s原创 2017-10-10 09:46:28 · 1287 阅读 · 0 评论 -
【Skynet】使用skynet在服务器与客户端间传输文件
这是一个简单的文件传输例子,使用了skynet封装的socket接口。熟悉一个框架最好的方法就是用它。skynet有一个“服务(service)”的概念,每个服务类似与一个模块,完成特定的任务,启动一个服务可以使用 newservice() 或 uniqueservice()。首先是客户端:package.cpath = "luaclib/?.so"package.path原创 2017-09-18 10:27:05 · 2018 阅读 · 0 评论