skynet
mick_seu
这个作者很懒,什么都没留下…
展开
-
【Skynet】C头文件不要定义函数?
参考自:函数实现不放在头文件的原因,及何时可以放头文件的情况(绿色冰点) 对于C/C++我们很早就被告知不要在头文件里定义函数,这样不好。今天学习Skynet时,发现里面有很多函数都定义在头文件里?很是疑问,于是有了这篇文章。 把函数定义在头文件有哪些主要缺点? 1、不利于代码理解和维护: 通常,头文件被用来唯一指定接口,且多少提供一些文档来说明如何使用在该文件中声明的组件原创 2017-09-25 15:57:24 · 4070 阅读 · 1 评论 -
Skynet安装及配置
Skynet是云风写的轻量级游戏服务器。 首先Git源代码。 按照提示 make linux 进行编译。 遇到一些问题: 1、缺少autoconf sudo apt-get install autoconf 2、缺少readline sudo apt-get install libreadline-dev 安装完后进入 skynet,重新 make li原创 2017-09-03 17:43:23 · 2188 阅读 · 0 评论 -
【Skynet】文件传输升级版
上一个socket文件传输过于简单,师傅让我进一步改进,定义包结构,让文件的传输过程更加自由。该实现可以参考./examples/client.lua ,这里面有数据的打包与解包。 这里我设计了一个简易的报文结构。 Length:即Type+Content的长度。 Type:将报文分成两种,一种为信息报文,包含文件名及文件大小,以字符串"01"表示,一种为数据报文,以字符串"原创 2017-09-19 14:33:39 · 721 阅读 · 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 · 1679 阅读 · 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 · 3824 阅读 · 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 · 838 阅读 · 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 · 1272 阅读 · 0 评论 -
【Skynet】使用skynet在服务器与客户端间传输文件
这是一个简单的文件传输例子,使用了skynet封装的socket接口。熟悉一个框架最好的方法就是用它。 skynet有一个“服务(service)”的概念,每个服务类似与一个模块,完成特定的任务,启动一个服务可以使用 newservice() 或 uniqueservice()。 首先是客户端: package.cpath = "luaclib/?.so" package.path原创 2017-09-18 10:27:05 · 1979 阅读 · 0 评论