一般来说网络通讯经常使用的方式有2种:文本通讯和二进制通讯。php与erlang之间实现文本通讯比較简单。这里就不做讨论,本文主要讨论的是php与erlang实现二进制通讯的实现方法。实现过程例如以下:erlang端代码:-module(server). -export([start/0]).
转载
2017-04-21 21:59:00
41阅读
2评论
今天演示,如何利用shell和erlang通过socket进行通信,希望能对大家有所启发。
服务端由erlang设计的一个支持并发的取整服务器,客户端由shell脚本实现(当然,其他动态语言做起来也很方便,这里有个目的就是介绍shell脚本的扩展应用)。客户端发送一个浮点数,服务端处理后返回相应的整数。这里只是一个引子,希望看到的朋友可以自
原创
2013-01-11 17:07:30
1157阅读
Erlang 中gen_tcp 用于编写TCP程序,gen_udp用于编写UDP程序。一个简单的TCP服务器echo示例:Start_echo_server()-> {ok,Listen}= gen_tcp:listen(1234,[binary,{packet,4},{reuseaddr,true},{active,true}]), {ok,socket}=get_tcp:accept(Listen), gen_tcp:close(Listen),
原创
2021-11-22 13:33:53
113阅读
Erlang 中gen_tcp 用于编写TCP程序,gen_udp用于编写UDP程序。一个简单的TCP服务器echo示例:Start_echo_server()-> {ok,Listen}= gen_tcp:listen(1234,[binary,{packet,4},{reuseaddr,tru
原创
2022-03-21 16:40:36
180阅读
Erlang Socketa. 最核心的概念 - socket控制进程b. 基本的C/S结构的例子(服务器只能处理一个客户端连接)c. 顺序型服务器的例子(服务器顺序的处理客户端的请求,每次只能处理一个,处理完一个处 理下一个)d. 并发型服务器的例子(服务器并发的处理多个客户端的请求)e. 控制逻辑 - 主动型消息接收(非阻塞)f. 控制逻辑 - 被动型消息接收(阻塞
原创
2022-09-28 10:45:34
233阅读
erlang R17带来了新的socket选项{active,N} 。与{active,once}连同应用层提供的流量控制。为什么会这样选择,{active,once}不能够有效地抑制了很多socket消息做?我们知道,,{active,once}一次设置active选项,才干继续接收erlang的...
转载
2015-06-26 11:14:00
109阅读
Some notes on Erlang timer.
转载
2012-03-16 15:17:00
400阅读
2评论
Erlang SMP使用操作系统线程实现多个调度器,利用了多核多CPU的优势并把实现细节对开发者隐藏起来, 可以不修改代码甚至不用重新编译就可以使用;使用SMP可以有非常灵活的启动选择和运行时调整的方法入口;
转载
2012-02-01 12:36:00
246阅读
2评论
学习Erlang的时候在书的留白处随手记录了一些东西,还有一些记录在了demo的注释里面,今天抽时间整理出来了一部分,分享一下.
转载
2011-10-23 17:02:00
295阅读
2评论
从开始学习编程的时候Array就是基础数据结构,也是被使用最频繁的,但是在Erlang中一等公民是List和tuple,在项目中到处都是List的各种处理,但是Array却少见踪迹.好奇心驱使,最近了翻看了一下Array的代码实现.array基础 [1] array可动态扩展大小;可固定大小,可按需自动增长. [2] 如果没有明确赋值会使用默认值undefined,要区分是否赋值过可以使用
转载
2012-06-14 09:56:00
169阅读
2评论
梳理了一下有关Erlang Guard相关的知识,纠正了Learn you some erlang 作者的一个理解上的小偏差.
转载
2012-03-22 00:08:00
138阅读
2评论
Erlang中atom数据类型能够做的唯一的运算就是比较,它不参与垃圾回收,因而在搞崩Erlang的各种方法中无节制使用原子名列前茅.
转载
2012-01-04 15:57:00
371阅读
2评论
既然Erlang中有List,那iolist又是为了解决什么问题而设计的呢?
转载
2012-01-31 17:58:00
341阅读
2评论
ordsets 是lists实现的有序集合.由于数据元素的变动都会触发重新排序,所以ordsets效率不高,只适用于数据量比较小的场景.ordsets中包含了常见的集合操作:求交集,并集,是否为子集,是否存在交集 6> ordsets:intersection([1,2,3,4],[3,4,5,6]).[3,4]7> ordsets:union([1,2,3,4],[3,4,5
转载
2012-07-06 23:06:00
327阅读
2评论
Queue 是Erlang的队列,它的内部实现充分考虑到了效率,值得学习.估计"如何用链表高效实现Queue"这个也会在面试题目中频繁出现吧
转载
2012-07-10 11:08:00
321阅读
2评论
epmd进程和Erlang节点进程如影随形,在Rabbitmq集群,Ejabberd集群,Couchbase集群产品文档中都会有相当多的内容讲epmd,epmd是什么呢?
epmd 是Erlang Port Mapper Daemon的缩写,全称足够明确表达它的功能了(相比之下,OTP就是一个难以从字面理解的名字);epmd完成Erlang节点和IP,端口的映射关系,比如在我的测试机上,
转载
2014-07-03 22:34:00
416阅读
2评论
dict是动态哈希表实现的字典.在接口上和orddict保持一致,在实现上和array动态扩展的思路类似, 与proplists,orddict相比它能够支持更大的数据量,你可以在数据量膨胀的时候从orddict转为dict.dict使用的是动态哈希技术实现,理论依据是论文: "The Design and Implementation of Dynamic Hashing for Se
转载
2012-06-24 22:30:00
297阅读
2评论
orddict 是用List实现的有序Dictionary. orddict按照Key进行排序,Key值不重复(对比一下proplists).每一次增加新数据项都会进行重新排序,所以通常情况查找会非常快.由于也是List和tuple实现,所以和proplists一样orddict也不适合大数据量的情况.注意orddict进行Key比较使用的是相等(==).通过模块暴露出来的接口完成对ordd
转载
2012-06-17 21:50:00
198阅读
2评论
学习Erlang有点滴收获就会记录到Evernote,今天又整理出来了一部分,分享一下.
转载
2012-03-11 13:11:00
200阅读
2评论
和Parameterized Module一样的态度:把extend当作Erlang语言特性,当作代码复用的一种手段,不扯OOP,可能更好理解: )
本文回答Erlang Inheritance 怎么用?如果是Parameterized Module呢? 什么时候使用?
How To Use Erlang继承通过关键字extends实现,下面看一个简单的例子: -module(al
转载
2012-02-17 13:15:00
108阅读
2评论