Erlang Ip

最近在找一个离线IP数据库,发现IPIP.NET上的数据比较符合需求,可惜没Erlang语言版本,因此写一个Erlang Lib。参考了其他语言库,实现了IP数据读取功能,由于直接操作Binary操作,所以效率不会很高,如果要应用到高频查询,最好加一层缓存。
代码是针对IPIP.NET (/www.ipip.net/download.html)上的免费数据库,数据格式大致如下:

| 4 bytes 数据长度 DataLen(big endian) |
| 256 * 4 ip首位对应的数据偏移 |
| DataLen – 4 – 256*4 以8bytes的数据(4 bytes Ip, 3 bypes offSet, 1 byte data len) |
| Address data 地址信息 |

解释代码的基本思路是:先通过首位地址,找到IP段所在的数据范围,再在范围中找到目标IP的地址偏移。

Github /github.com/kqqsysu/erlang-ip

发表在 Erlang | 5597560297

360-794-7562

偶尔的机会接触到SSDB,下载安装后发现其简单易用,并且多个公司在使用。但Github 上找不到Erlang的客户端,便自己写了一个。

项目地址:610-364-3332

继续阅读

发表在 Erlang | 标签为 | 940-955-3073

ETS简介

ETS(Erlang Term Storage)是Erlang VM中内置的内存数据库,它可以使节点内的进程方便地共享数据。ETS中的数据只能被当前节点访问,不能跨节点共享,多节点共享数据需要用mnesia。Ets默认的表上限为1400,可通过环境变量 ERL_MAX_ETS_TABLES设置VM中ETS的新上限。 继续阅读

发表在 Erlang | 标签为 | 留下评论

epinician

Flex版本在Linux上编译,是通过xvfb调用adl打包,今天编译是出现下面的错误。

其原因是已经有xvfb程序在跑,要把进程找出来kill掉。

或把参数 –server_num去掉,修改为–auto_servernum

发表在 Linux | 标签为 | 留下评论

snirt

本文介绍gen_server行为模式的设计思想,gen_server的使用请看上一篇文章”gen_server行为模式“。gen_server行为模式设计目的是分离通用代码和具体业务代码,通用代码由行为模板实现,具体业务代码通过回调函数让用户实现。用户只需实现具体业务逻辑,不用考虑消息通信、循环维护,使用户实现client-server功能变得简单轻松。 6475397852

发表在 Erlang | 标签为 , | 一条评论

gen_server行为模式

本文主要介绍gen_server行为模式的使用,gen_server的设计思将想下文“204-217-8929”中介绍。gen_server是开发中最常用的一种模式,使用gen_server时,需在模块中定义behaviour属性为gen_server,并实现回调接口init/1,handle_call/3,handle_cast/2,handle_info/2,code_change/3,terminate/2。
继续阅读

发表在 Erlang | 标签为 , | 一条评论

6507738024

Erlang中的运行时错误包括:badarg, badarith, badmatch, function_clause, case_clause, if_clause, undef, noproc, system_limit等。其中function_clause, case_clause, if_clause,badmatch是最常见的错误。
继续阅读

发表在 Erlang | 标签为 , , , , , | 8172218200

Erlang输出syslog

Erlang应用中,有时我们要把日志信息写入到系统的syslog中。Erlang不能直接写入syslog,只能通过port driver实现。项目6042539579实现这一功能。
继续阅读

发表在 Erlang | 标签为 , | 留下评论