erlang
niew
游戏开发
展开
-
3.Socket
说到socket就会想到tcp、udp、http协议,先来分析一下erlang项目中如何使用tcp socket。 RabbitMQ项目中使用了prim_inet:async_accept/2、prim_inet:async_recv/3等方法,这些是相对比较底层的api,在erlang官方文档中并没有介绍,不过我们可以通过源码看到,最终会进到erlang:port_control/3函数,原创 2016-01-23 12:40:23 · 533 阅读 · 0 评论 -
5.集群
关于erlang的多节点通信,可以默认所有集群中的节点都运行在一个被信任和可靠的网络中,连通的节点间可以直接进行内部调用。 下面通过一个简单的例子说明如何进行节点间的连接。 开启2个erl节点: erl -name node1@127.0.0.1 erl -name node2@127.0.0.1 在shell中输入 nodes(). 可以看到返回值为 []原创 2016-01-23 12:44:27 · 300 阅读 · 0 评论 -
4.Mysql驱动
关于mysql的数据库驱动,网上有开源的git代码,https://github.com/dizzyd/erlang-mysql-driver erlang先跟mysql建立tcp连接登录,然后在上面执行SQL命令。首先看mysql.erl模块的start和start_link函数,最终进入start1中启动gen_server,所以mysql驱动的分发中心是一个gen_server。在in原创 2016-01-23 12:41:24 · 389 阅读 · 0 评论 -
2.erlang启动参数
erl命令用于启动erlang服务,其中的启动参数分为emulator flags、flags 和plain arguments。官方文档:http://www.erlang.org/doc/man/erl.html 下面是一段linux下的启动参数: #!bash DOMAIN=127.0.0.1 erl +P 1024000 -smp auto -name node1@原创 2016-01-23 12:36:56 · 773 阅读 · 0 评论 -
0.erlang服务端笔记
记录一些关于erlang的知识点。 关于更专业的erlang文章,建议跳转至http://blog.yufeng.info/和http://erlangdisplay.iteye.com/category/127758。 关于研究代码,将上传至github。原创 2016-01-21 18:59:01 · 332 阅读 · 0 评论 -
1.Emakefile
erlang里的make模块提供了类似UNIX中make命令的功能,官方参数文档:http://www.erlang.org/doc/man/make.html make.erl模块中提供all/0、all/1、files/1、files/2方法进行编译,也可以使用erlang启动参数-make进行编译(erl -make)。进入make.erl函数中可以看到,执行all方法时,会先判断当原创 2016-01-21 20:12:40 · 1410 阅读 · 0 评论 -
erlang实现A星算法
A星算法是寻路的经典算法,在很多游戏中有使用,性能关键在于启发函数的设计。函数式语言erlang实现一些算法上还是相当绕,有一些无可避免的地方需要用一些非典型的语法实现(变量不可变、无循环语法、无法在函数中return等),实现了一个基础的A星算法,启发式函数使用对角线估价法,先按对角线走,一直走到与终点水平或垂直平行后,再笔直的走。随便构造一个地图文件来进行测试,用erlang的stat原创 2016-01-07 20:30:53 · 1593 阅读 · 0 评论