自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lewiskyo的专栏

Erlang Linux

  • 博客(46)
  • 资源 (2)
  • 收藏
  • 关注

原创 erlang节点连接与通信

参考资料:https://www.cnblogs.com/me-sa/archive/2011/07/12/erlang0005.htmlpart1: 节点连接Erlang节点之间建立连接,可以使用net_adm:ping(),参数填写指定节点名字,连接成功返回pong,失败返回pang。part2: 订阅节点连接使用net_adm:ping()可以连接上指定节点,但实践中我们不仅仅是要...

2019-05-03 11:45:53 1148

原创 erl 启动参数记录

参考资料: http://www.cnerlang.com/erts-8.1/doc/html/erl.html https://blog.csdn.net/erlib/article/details/50248939part1: 介绍erlang启动参数分为3种:以 + 开头的为emulator flag,用于控制erl模拟器(交互界面)的行为.以 - 开头的为flag, 主要是传...

2019-05-03 11:01:48 981

转载 热更原理

文章参考自:https://blog.csdn.net/mycwq/article/details/13290757https://blog.csdn.net/mycwq/article/details/41175237https://blog.csdn.net/mycwq/article/details/43372687Part 1: 热更apiErlang有以下几组API提供选择:...

2019-04-29 13:32:05 1159

原创 proc_lib分析

参考: http://www.cnblogs.com/me-sa/archive/2011/11/22/erlang0017.html介绍:从官方文档介绍可知, proc_lib模块用于启动符合OTP原则的进程, OTP的behavior都是使用proc_lib实现创建新进程,所以说这个模块是OTP的基石.谈谈proc_lib:spawn与erlang:spawn的区别.1.从源码...

2019-04-21 19:24:47 417

原创 gen_server启动,关闭,消息收发分析

https://www.cnblogs.com/hzy1987/p/5441807.htmlhttp://www.cnblogs.com/me-sa/archive/2011/12/20/erlang0023.html介绍:gen_server是OTP的一个behavior, 在behavior基础上快速构建出可用且可靠的功能.behavior是进程模式的规范化,把代码分成两部分,一部分是...

2019-04-21 18:25:11 1265

原创 复盘2018,展望2019.

20182018感觉是人生中过得最快的一年,因为一整年都在忙碌, 工作上有得有失,简单按月回顾一下2018.工作:1 ~ 4月: 项目1继续赶进度,主要是功能迭代方面,在4月份上线后因为目标未符合预期,项目被解散,至此做了两年的工作结束.5月: 立新项目, 服务端语言转为Erlang,这一个月重新学习这门语言,写了一个聊天室的程序,算是入门了.6 ~ 11月: 投入到新项目功能开发,...

2019-02-09 11:02:16 293

原创 Ranch浅析

version: release 1.3.2Part 1: 进程结构和启动流程作为独立application启动后,进程结构图如下:未命名进程标识:<0.97.0>: ranch_app<0.103.0>: ranch_listerner_sup<0.104.0>: ranch_conn_sup<0.105.0&

2019-01-31 17:57:12 680 1

原创 Erlang开发心得001

1. 前言新项目采用Erlang进行开发,从学习到开发功能已经有两个月,在此写下自己对这门语言的一些使用感受2. 优点①. 由于天生支持分布式,不同Erlang进程间的同步异步通信非常方便,而且数据不需要做任何转换.②. 自带的数据结构简单,掌握list,dict,tuple,record即可满足开发. 而且list和dict提供了比较主要的api函数,基本可以实现大部分需求.③. ...

2019-01-28 22:39:54 308

原创 Erlang杂记002

查询Erlang api的网址:①. http://www.cnerlang.com/api.html②. https://erldoc.comif看起来比较舒服的写法.S = 2,if S > 3 -> todo1; S < 3 -> todo2; true ->

2019-01-28 22:39:15 125

原创 Erlang 给本进程mailbox发消息

1. 前言这两周在别人的模块上加回调函数的时候,遇到了问题。 然后老大提了下可以用给本进程发条消息,稍后处理即可,虽然是一个很简单的技巧,但我觉得挺有意思,所以就记录下。2. 问题描述模块A用一个list管理一系列相同的record,每个record内含多个值,某个record的变量B发生改变后,触发修改函数on_record_B_change, 但该修改函数仅仅只是修改了record的...

2019-01-28 22:38:49 476

原创 Erlang杂记001

如果原子不以小写字符开头或者其中包含有除字母,数字,下划线以及@符号之外的其他字符,那么必须放在两个单引号’ '之间,‘Atom’, 原子加上单引号和原来的原子相等.用变量获取if或者case … of 表达式返回值,往下继续处理,避免在表达式里的逻辑层次太深.Var = if xxx ->Var = case xxx of case表达式代码写起来会比较整洁.case...

2019-01-28 22:38:00 176

原创 复盘2017,展望2018

复盘2017  2017年转眼间就过去了,最近实在太忙,到今天才有时间好好回顾一下去年的自己,以及对今年做一些计划和展望。  早在16年年底就向上一家公司提出离职,外部原因是leader的管理混乱,项目规划朝令夕改。 自身原因是不想继续从事游戏行业,一是兴趣不大,二是工作时间过长,影响身体健康。 所以就开始重温编程基础,通过博客论文学习分布式知识。只是学习方法不太对,加上平时的工作自己只是担...

2019-01-27 11:19:00 248

原创 vscode使用笔记

最近大半年都在vscode下进行开发,记录一些笔记.插件之前习惯使用sublime,所以就打算继续沿用sublime风格的操作.Sublime Text Keymap sublime主题插件,安装之后快捷键就与sublime一样了.主题sunburst theme, vscode合适的主题很少, 能看的主题只有这个.任务vscode支持创建任务. 具体教程地址: https:...

2019-01-27 11:17:34 1266

原创 积分无上限排行榜设计

需求如下:对玩家的等级,战斗力,宠物等级建立排行榜, 排行榜显示排名前200的玩家, 而最大显示排名为3000.方案一: 直接排序数据结构:记录玩家属性数据table roleData:{uid = 1, level = 1, combat = 1, petLevel = 1, rankIndex = {} }其中rankIndex用于记录玩家在每个榜的位置, key为榜的索引,...

2019-01-27 11:15:32 663

原创 Linux下Tolua的使用(一)

文章参照自: http://www.cppblog.com/converse/archive/2005/12/27/2199.aspx#Post介绍tolua是一个第三方的软件包,可以为Lua提供面向对象的特性,这样我们就可以使用在Lua脚本中访问c/c++语言库提供的类和函数.下载地址: http://webserver2.tecgraf.puc-rio.br/~celes/tolu...

2019-01-27 11:14:44 511 1

原创 初试正则表达式

文章参照自: https://www.cnblogs.com/answer/archive/2010/03/29/1699751.html介绍与基本语法正则表达式是一个查询的字符串,它包含一般的字符和一些特殊的字符,特殊字符可以扩展查找字符串的能力,正则表达式在查找和替换字符串的作用不可忽视,它 能很好提高工作效率。notepad++的查找,替换,文件中查找支持以下的正则表达式:表达式...

2019-01-27 11:13:52 320

原创 服务器逻辑开发心得

系统层面通信协议一般是由服务器制定,有几个关键点:①. 变量注明必须和可选字段(required or optional).②. 协议注明请求,返回和推送时机,不要让其他协议阅读者猜测意图。③. 涉及枚举定义一定要专门定义,不要直接在协议里面注释标明。日志:①. 分类按照级别, debug, info, warn, error分文件夹存储.②. 以小时为单位分文件存储, 每...

2019-01-27 11:12:30 522

原创 基于事件调度的Actor模型

概念事件在这里可以理解为消息到达事件,事件到来时才为Actor分配线程并执行消息的处理。这样便可以使用少量的线程来执行大量Actor产生的任务,Actor有消息要处理的时候才占用CPU,没有的时候就挂起,保证了每个线程都在高效执行任务。Actor模型组成cpu用于执行线程,目前单机上为多核。workthread工作线程,保证线程数目<=cpu核数,否则只会把cpu时间浪费在线...

2019-01-27 11:10:55 966 1

原创 游戏经历总结

从事游戏工作,大部分时间是在做业务逻辑。游戏的业务逻辑大体上分两类,单人玩法和多人玩法。单人玩法例如收发邮件,背包操作,多人玩法例如组队匹配。入门个人写功能逻辑的流程是:1. 通读文档,检查文档逻辑是否有问题,大致评估实现难点。  2. 画思维导图,从内存数据结构,db存储格式,C/S交互以及功能逻辑要点,配置需求这几个点去写。  3. 实现具体的逻辑代码。  4. 自行写出Ch...

2019-01-27 11:09:30 2073

原创 业务逻辑开发要点

介绍在把底层框架写好之后,服务器开发的主要任务就转移到业务逻辑上,本文主要结合自己的经验,简单介绍业务逻辑开发过程中几个需要注意的点。防御性编程不要相信客户端数据,一定要对客户端数据进行检验。通常做法是检查协议所有参数的合法性,一旦遇到不合法的判断,马上打上信息充足的日志,然后中断请求的执行。插件式的模块设计,模块功能的健壮性应该是内建的,尽量减少模块间耦合,在所有模块的调用入口做好开关...

2019-01-27 11:08:32 599

原创 Lua热更系统

介绍使用脚本开发游戏业务逻辑其中一个好处就是代码可线上热更,不停机修复bug。而热更代码的写法与需要被热更的文件的代码又有着密切的关系,本文介绍一种热更方法。热更原理Lua提供一个叫require的函数,实现文件的加载,require的作用可查看云风大大的参考手册说明http://cloudwu.github.io/lua53doc/manual.html#pdf-require当要...

2019-01-27 11:02:13 632

原创 C++结合LUA实现代码热更新

最近写一个文件服务器,是用C++写的,go

2014-09-23 22:37:44 8152 1

原创 Linux C 文件传输程序(TCP && UDP) 遇到的一些问题

1.sendto(sockfd,"OK\0",3,0,(SA*) &cliaddr,sizeof(cliaddr))最后一个参数为sockaddr_in 的结构长度,而不是经过转型后的 SA 长度

2014-09-17 09:41:37 1081

原创 linux c UDP文件传输 添加了丢包处理

unp.h#include #include #include #include #include #include #include #include /* for nonblocking */#include #incl

2014-09-17 09:28:49 1266

转载 HTTP 1.1与HTTP 1.0的比较

文章转载自  http://blog.csdn.net/elifefly/article/details/3964766HTTP 1.1与HTTP 1.0的比较一个WEB站点每天可能要接收到上百万的用户请求,为了提高系统的效率,HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟

2014-06-01 08:18:51 740

原创 分布式网页爬虫QQQ

最近课程作业要做一个爬虫,突然想起之前学习过UNP里面的非阻塞IO,以及多路复用,正好能学以至用,所以选择用linux c写一个分布式爬虫,网上一搜其实爬虫的原理其实几分钟就可以搞懂,关键是抓取网页效率要高.先说说我这个分布式网页爬虫的完成情况:已完成部分:1.能够通过一个或多个起始站点地址,进行网页收集.2.支持HTTP协议,CHUNKED编码,将收集到的网页存储

2014-05-30 09:59:50 1174

原创 高效使用vector

参考网页: http://www.cnblogs.com/biyeymyhjob/archive/2013/05/11/3072893.html#undefined1.初始化的时候,最好先用reserve分配空间,减少之后push_back要重新分配内存a次数.vector s;s.reserve(n);vector中一个成员被删除,会导致后面的成员进行copy和析构操作。

2014-05-30 09:21:24 1128

原创 多线程编程实例:不带缓冲的多线程文件复制 (使用pread pwrite版本)

这篇文章跟之前我发过的多线程编程实例:不带缓冲的多线程文件复制其实内容是差不多的,只不过这个版本是将没

2014-05-07 16:43:57 1424

原创 多线程编程实例:不带缓冲的多线程文件复制(使用队列,互斥,条件变量)

说说这个版本的设计思路:1.引入对文件分块的思想,例如一个文件大小为10000 bytes,我可能会将其分成100块,每块数据大小为100 bytes,然后用一个结构把块在文件的起始位置以及块大小记录下来,这些结构会一个队列(ds)管理中.2.主要用到两个线程启动函数,fetch 和 transportfetch线程主要是根据分块的结果到指定的文件中读取对应的文件块,并存储

2014-05-03 16:22:16 1029

原创 多线程编程实例:不带缓冲的多线程文件复制

其实这个程序实际意义并不大,写这个主要是

2014-04-25 23:34:27 827

原创 数据结构中最大值堆C++实现

包含建堆 插入 删除最大值

2014-04-20 20:35:14 726

原创 标准程序库中带异常处理的栈实现

#include #include #include using namespace std;class Stack{private: deque c;public: class ReadEmptyStack : public exception { public: virtual const char *what() const throw() { retu

2014-04-19 23:35:36 733

原创 插入排序 选择排序 冒泡排序 快速排序

插入排序:

2014-04-19 15:19:45 775

原创 关于函数返回值的一些见解

我们都知道c++函数返回类型有三种 返回值 返回指针 返回引用。下面简单说说在函数返回的时候到底发生了什么动作。返回值类型:拿一个很简单的例子:函数定义:int get(){int n=3;return n;}int main(){int k=get();}先看get函数,局部变量n是一个产生在栈区的值,因此在

2014-04-15 09:59:32 804

原创 关于一级指针和二级指针的简单见解

一级指针形式如: int *p二级指针形式如: int **p可能很多初学者会疑惑在函数参数里面到底应该用一级指针还是二级指针。下面用几个例子说明一下:第一个是大家都很熟悉的链表下面是一个链表结构:typedef struct Node{int value;struct Node *next;}对于添加数据

2014-04-14 18:36:56 956

原创 关于auto_ptr的一些事

auto_ptr是什么。解释1.auto_ptr是一个管理指针的对象,防止内存泄漏和便于程序员编程时的内存管理解释2.auto_ptr所做的事情,就是动态分配对象以及当对象不再需要时自动执行清理。值得注意的是auto_ptr是一个"对象" 而非指针。原理(摘自EFFECTIVE C++ 条款13):当把资源放进对象内,当控制流离开函数,对象的析构函数会自动释放那些资源,

2014-04-10 15:46:45 715

原创 python2.7.3 统计某个文件夹下所有文件或者某个文件的行数

测试环境是 ubuntu 12.03#coding=UTF-8import os ,datetimeprint ""# basedir = '/home/lewiskyo/文档/pythonExer/'#手动输入主目录版本 使用的时候请注释掉上一行的basedir 不注释也可以# PS: 输入的必须要是绝对路径 除非你查找的只是与这个文件同一目录下的文件 basedi

2014-03-07 11:03:32 1696

原创 django 1.6.2 下session 与 cookies 的使用

首先强调版本是 1.6.2 低于这个版本的请自行查看版本间的差异这里以一个简单的注册登录跳转为例说一下session 和 cookie的用法.app的名字是 sessiontesttemplates下模板 urls sessiontest.views  sessiontest.forms sessiontest.models 文本代码如下:templates下模板

2014-03-06 23:41:43 1412

原创 Django一周学习笔记

Django学习笔记Django Web编程思路 global setting生成项目project初始化配置settings.py生成应用模块app安装app至projectapp setting编写models.py定义urls.py将app urls加入project urls配置编写views.py编写相应的templaterun server

2014-02-28 08:11:48 1052

原创 为TreeMap添加比较器

之前做项目打算用 Map test = new TreeMap() 这个TreeMap类型 然后发现调用put()函数的时候出错 原因是没有为这个TreeMap() 类型设置比较器Compareable.  原因是TreeMap 是一颗有序树 因为基本类型string double interger 都有其自己的比较器 所以TreeMap中可以放这些类型 但是Arraylist类型

2013-09-30 19:34:21 1493

lua for windows

lua for windows安装exe

2014-10-28

stl源码剖析高清版

高清版STL源码剖析免费下载

2014-06-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除