随笔分类 - erlang:初级
摘要:一、 concat(Things) -> string() Types: Things = [Thing] Thing = atom() | integer() | float() | string() Concatenates the text representation of the elements of Things. The elements of Things can be atoms, integers, floats or strings. > lists:concat([doc, '/', file, '.', 3]). &quo
阅读全文
摘要:gen_tcp:linsten()/2使用的是{packet,2/4/8},则gen_tcp模块在接受或者发送时自动除去包头或者自动加上包头。本例中使用的是{packet,0}。-module(mod_tcp_server_listener)%%监听端口,收到新的socket就启动 mod_client_reader进程%%监听端口,收到新的socket就启动 mod_client_reader进程-module(mod_tcp_server_listener).-include("common.hrl").%% ==============================
阅读全文
摘要:一、> = Bin, > = Bin, 红色的编辑不过去,erl会提示:a bit unit size must not be specified unless a size is specified too
阅读全文
摘要:需要测试:spawn(fun() -> end)end.与spawn(fun mm:aa/0).1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s) 1秒=1,000,000 微秒(μs) 1微秒=1/1,000,000秒(s) 1秒=1,000,000,000 纳秒(ns) 1纳秒=1/1,000,000,000秒(s) 1秒=1,000,000,000,000 皮秒(ps) 1皮秒=1/1,000,000,000,000秒(s)
阅读全文
摘要:一、模块内调用1> AA=fun(BB)-> io:format("this is test args ~s~n",[BB]) end.#Fun2> AA(aa).this is test argsaaok3> BB=fun()-> io:format("this is BB FUN ~n",[]) end. #Fun4> BB().this is BB FUN ok5> spawn( BB). this is BB FUN 6> spawn(fun()-> AA(cc) end).this is t
阅读全文
摘要:转自:https://erlangcentral.org/wiki/index.php/Building_a_Non-blocking_TCP_server_using_OTP_principlesBuilding a Non-blocking TCP server using OTP principlesFrom ErlangCentral WikiContents1 Author2 Overview3 Server Design4 Application and Supervisor behaviours5 Listener Process6 Client Socket Handling
阅读全文
摘要:-module(first_gen_server).-behaviour(gen_server).-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).%% ====================================================================%% API functions%% ====================================================================-e
阅读全文
摘要:一、new(Name, Options) -> tid() | atom(),创建ets表.Options = [Option],目测常用的属性,{keypos, Pos}:指定key的位置,每个元组的长度必须要大约Pos,也可以使用record的字段。named_table:ets表注册.Type:set | ordered_set | bag | duplicate_bag:表的类型,是否允许出现重复。Access:public | protected | private二、查询1.lookup(Tab, Key) -> [Object]:根据key进行查询Types:Tab
阅读全文
摘要:源于>的第14章的14.1.4大约第197页。未发现多个进程对同一个监听套接字调用函数gen_tcp:accept/1比单进程的效率更高或者更快。
阅读全文
摘要:直接上源码,留做纪念。有点简单,大家不要笑,初次实现。功能描述:java发送数据给erlang,erlang将收到的数据重复两次再发送给java。erlang源码:模块tcp_listen-module(tcp_listen).-export([start/0,close/1]).-define(PORT,5002). start() -> AA= >, io:format("hello erlang ~w~n",[[AA,byte_size(AA)]]), case gen_tcp:listen( ?PORT,[binary,{active,true},{pa
阅读全文
摘要:ChicagoBoss,Nitrogen ,Zotontic,BeepBeep,ErlyWeb,Erlang Boss。转自:http://bbs.chinaunix.net/thread-3764065-1-1.html这里是我翻译的一篇国外的文章,原文地址:http://lenary.co.uk/erlang/2011/08/erlang-web-libraries/我目前从事Erlang相关的开发工作,虽然Erlang算是一门小众语言,但是我很喜欢,就像一直喜欢perl一样。这里yy一下,Erlang和Perl的年龄差不多,后者曾经在天朝很火,接触过linux的人几乎都听过,前者最近几年
阅读全文
摘要:转自:http://veniceweb.googlecode.com/svn/trunk/public/daily_tech_doc/mochiweb_20091030.txtMochiWeb项目主页:http://code.google.com/p/mochiweb/1. 网络资源1.1 实战Mochiwebhttp://erlang-china.org/start/mochiweb_intro.html1.2 (译)用Mochiweb打造百万级Comet应用,第一二三部分http://idisc.javaeye.com/blog/267028http://idisc.javaeye.com
阅读全文
摘要:SublimErl :https://github.com/ostinelli/SublimErl (推荐,操作较简单) https://github.com/fjl/Sublime-Erlang插件1、SideBar Enhancements 这个插件改进了侧边栏,增加了许多功能NetBeans:ErlyBird 是Erlang 基于NetBeans的IDE开发环境。
阅读全文
摘要:转自:http://blog.csdn.net/pkutao/article/details/8572216{ok, Listen} = gen_tcp:listen(?defPort, [binary, {packet, 2},{reuseaddr, true},{active, true}]),%gen_tcp表用TCP连接%binary表二进制流方式%packet,2:表包头长度2字节%reuseaddr, true:表多个实例可重用同一端口% {active,true} 创建一个主动套字节(非阻塞)% {active,false} 创建一个被动套字节(阻塞),如果为false表必须手工
阅读全文
摘要:erlang:module_loaded(module):检测模块是否已加载;
阅读全文
摘要:转自:http://www.itkee.com/developer/detail-318.html今天在家里闲来无事,实践了一下Erlang的Socket的功能。记录一下在过程中遇到的一些问题,以及编码的步骤。1. 对于测试用例的介绍:Erlang编写TCP服务器。只做一次Accept,接收到Socket之后开始收数据。用python编写Client,连接到服务器上;发送LEN(int)+CMD(short)+BODY(binary)格式的数据包。用于熟悉Erlang如何做拆解包,数据读取。2. 编写简单的Erlang TCP服务器:Erlang里面的TCP socket应该都是这个方式来编写
阅读全文
摘要:转自:http://blog.csdn.net/summerhust/article/details/8740973一旦打开了一个使用TCP连接的套接字,它就始终保持打开状态,直至任何一方关闭它或因为一个错误而终止。在建立一个连接时,一般为每一次请求产生一个新进程,只要有请求被处理,就保持这个进程的存活。假设有一个监听进程,其任务是等待传入的TCP请求。只要一个请求到达,响应该连接请求的进程就变成了接收进程,有2种方案:1. 产生新的进程并成为接收进程,而监听者返回并继续监听下一个新的连接请求:server()->{ok,ListenSocket}=gen_tcp:listen(1234
阅读全文
摘要:40> > = >.>41> > = >.>42> > = >.//-----------数值相等的两个变量相等-------------------------------------------->43> > = >. //-----------同一变量缺少默认值单位的和带上默认值单位的不相等。--------------------------------------------** exception error: bad argument44> > = >.** excepti
阅读全文
摘要:转自:http://ovalpo.info/?p=362学了Erlang三个礼拜,做了这个程序,费了4天时间,这四天查阅了wxwidgts,wxErlang,等界面设计的资料,英文还是不行 呀!今天被老大说我的程序使用的协议不规范。我想这算个RC版吧,哈哈。本程序使用Erlang + wxErlang + mysql。Erlang这东西不火,也是个麻烦,Web上Erlang的资料可怜地少,先贴个效果图吧。这个程序:不小心搞了个变量去匹配消息,然后变量不变这个害我好惨。记住:Erlang变量特性,变量不变程序很拙劣,但我还是想贴出来,以示我Erlang入门了,哈哈。客户端:client.erl
阅读全文