设为首页 加入收藏

TOP

Erlang服务器编程思想和实现
2014-11-24 13:51:39 来源: 作者: 【 】 浏览:3
Tags:Erlang 服务器 编程 思想 实现

下面会写到4个服务器程序,他们以server1,server2...这样的方式命名,好戏即将开始深吸一口气,go!!


1.server1 原始服务器程序


server1.erl


这段代码是erlang的标准服务器程序,下面写一个回调函数来运行测试。


name_server.erl


首先看后面的代码1.他负责回调服务器程序,处理其他进程发货来的请求2.相当于定义接口。


如下运行程序:


如果读者细心可以发现,这段代码里面并没有spawn这样的创建进程的命令,不错,这个服务器程序完全是顺序性代码,也许有人质疑这样做的意义,不要急这才刚刚开始

2.server2:支持事务的服务器程序


接下来要向大家展示的是,当服务器宕机,客户端回或得到异常,然后做相应的处理。


server2.erl


想对于之前的版本,多了注册函数和创建进程函数,可以理解的认为是增加了并行操作,但是我之前做过一些小项目而言,erlang的进程的确有他特殊的地方,这里会在之后的文章详细讲解,这段代码实际上是提供了“事务机制”,在handler发生异常时,回调用loop(Name, Mod, OldState)在之前的状态下进行循环,否则会在新的状态下进行运行


流程是怎样的呢:当服务端宕机,服务器会给客户端发送crash消息,说明服务器异常,然后客户端接收到消息后,可以做相应处理(在我们的项目中用到的是重连,例子中是退出),然后调用loop并带入变量OldState说明本次服务处理异常,同时不影响其他连接到服务器的客户端。


要测试的话,与server1完全相同只需要改变import时改为server2即可。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux设备驱动之Hello World带参.. 下一篇R 语言 简单介绍

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: