Erlang
文章平均质量分 90
潘广宇
主攻Golang|Python|PHP|数据库|高并发架构|人工智能,Base广州,博客主要写一些工作上遇到的问题和处理经验
展开
-
Php 与 Erlang 通信模块 peb 函数文档
一、打开与 Erlang 节点的连接resource peb_connect ( string $server , string $cookie )参数:$server:erlang节点信息,格式如 nodename@host.domain$cookie:用于与此 Erlang 节点通信的 Cookie返回值:成功时返回 Erlang 节点链接标识符,失败时返回 FALSE 节点链接标识符注意:脚本执行结束后,指向服务器的链接将立即关闭,除非通过显式调用 peb_close(原创 2022-02-28 19:10:18 · 706 阅读 · 4 评论 -
Erlang 实现简单的定时器
-module(timerclock).-export([timer/1]).timer(Time) -> receive after Time -> io:format("aaa"), % 定时业务代码 timer(Time) % 递归调用 ...原创 2019-04-09 22:10:03 · 723 阅读 · 0 评论 -
Programming Erlang 13.9 练习:编写一个 my_spawn 函数
一、题目编写一个my_spawn(Mod, Func, Args)函数。它的行为类似spawn(Mod, Func, Args),但有一点区别。如果分裂出的进程挂了,就应打印一个消息,说明进程挂掉的原因以及在此之前存活了多长时间二、编写myspawn 模块-module(myspawn).-export([my_spawn/3]).my_spawn(Mod, Func, ...原创 2019-04-09 21:45:03 · 284 阅读 · 0 评论 -
Erlang 超时为0的接收 疑问与详解
一、邮箱的概念① 每个进程都带有一个邮箱,这个邮箱是和进程同步创建的。② 给某个进程发送消息后,消息会被放入该进程的邮箱。只有当程序执行第一条接收语句时才会读取邮箱。二、问题的疑惑源代码 tester.erl-module(trec).-export([start/0]).start() -> receive {alarm, Content...原创 2019-04-09 16:15:18 · 447 阅读 · 0 评论 -
Erlang 计算程序运行的时间
-module(test_time).-export([time_test]).time_test() -> % 执行一次 statistic(runtime) 或 statistic(wall_clock) 让其记录初始调用的时间 statistics(runtime), statistics(wall_clock), %% 业务...原创 2019-04-08 23:58:14 · 1396 阅读 · 0 评论 -
Progamming Erlang 笔记 - 第 4 章 模块与函数
第4章 模块与函数4.1 模块是存放代码的地方① 模块是Erlang的基本代码单元,模块保存在.erl文件里,必须先编译才能运行,编译后的模块以.beam作为扩展名② 函数的模式匹配-module(geometry).-export([area/1]).area({rectangle, Width, Height}) -> Width * Height;area({...原创 2019-04-08 19:19:30 · 342 阅读 · 0 评论 -
Erlang io:format() 函数常用参数
一、常用参数~n :输出一个换行符(自动匹配平台标准)~p :参数打印成为美观~s : 输出一个字符串,I/O列表或原子,打印时不带引号~w :用标准语法输出erlang的数据类型~f :输出浮点数,~.kf输出保留k位小数的浮点数二、格式型io:format(~F.P.PadModC) 类型,如 io:format("|~-10.10.+s|", ["abc"]). ...原创 2019-04-11 23:14:39 · 3797 阅读 · 0 评论 -
Erlang 创建一个简单的UDP服务器
用Erlang创建一个简单的TCP服务器:https://blog.csdn.net/panguangyuu/article/details/89211209一、创建 udpServer.erl-module(udpServer).-export([server/1]).server(Port) -> {ok, Socket} = gen_udp:open(Port,...原创 2019-04-11 18:45:22 · 533 阅读 · 0 评论 -
Erlang 创建一个并行(支持多个socket)连接的TCP服务器
创建一个简单的顺序连接的TCP服务器:https://blog.csdn.net/panguangyuu/article/details/89211209一、修改 tcpServer.erl-module(tcpServer).-export([start/0]).start() -> {ok, Listen} = gen_tcp:listen(2345, [bin...原创 2019-04-11 16:08:54 · 604 阅读 · 1 评论 -
Erlang 创建一个简单的TCP服务器
一、创建 tcpServer.erl-module(tcpServer).-export([start/0]).start() -> % 创建一个端口2345用于监听来自客户端的请求,{package, 4} 是信息表头用4字节表示长度,需要与客户端一致 {ok, Listen} = gen_tcp:listen(2345, [binary, {pac...原创 2019-04-11 15:11:47 · 457 阅读 · 1 评论 -
Programming Erlang 16.7 练习:检查模块是否需重新编译
一、题目编译Erlang文件X.erl后会生成一个X.beam文件(如果编译成功的话)。编写一个程序来检查某个Erlang模块是否需要重新编译。做法是比较相关Erlang文件和beam文件的最后修改时间戳二、编写主要是通过判断 .erl 文件与 .beam 文件的修改时间(精确到分),因为编译时.beam文件生成时间一般比.erl文件稍后-module(checkModuler)...原创 2019-04-11 12:29:29 · 235 阅读 · 0 评论 -
Progamming Erlang 笔记 - 第 3 章 基本概念
第3章 基本概念3.1 启动与停止 Erlang shellerl : 启动 erlang shell Ctrl + C , a (abort) : 立即停止系统,可能导致某些数据破坏 q(): 受控关闭,所有打开文件被刷入缓存并关闭,功能与 init:stop() 一致 erlang:halt() : 立即停止系统3.1.2 可能出错的地方不能在shell里输入附注(连字符...原创 2019-04-07 19:40:13 · 340 阅读 · 0 评论 -
Progamming Erlang 通过 Makefile 自动编译 .erl 文件
通过 makefile 可以自动化一部分工作,比如编译 .erl 文件一、在 /root/workspace/erlang/test 中新建两个 .erl 文件,分别是 test.erl ,test2.erl% test.erl-module(test).-export([hello/0]).hello() -> io:format("hello, world~n")....原创 2019-04-07 16:10:02 · 559 阅读 · 0 评论 -
Progamming Erlang 笔记 - 第 2 章 Erlang 速览
第2章 Erlang速览2.1 Shell① 每一条表达式都必须以一个句号 + 一个空白字符(空格、制表符、回车符)结尾,如 1 + 2.2.1.1 = 操作符① Erlang 是函数式语言,一旦定义 X = 123,X 永远就是 123,不允许改变!2.1.2 变量和原子的语法变量:大写字母开头,如:X、A_long_name原子:小写字母开头,是符号常量,如:mon...原创 2019-04-07 14:37:39 · 320 阅读 · 0 评论 -
Progamming Erlang 笔记 - 第 1 章 什么是并发
第1章 什么是并发① 单核无法运行并行程序,因为只有1个CPU(一次只能做1件事),单核计算机可运行并发程序。1.1 给并发建模-module(person). % 模块名与文件名一致,以小写字母开头,模块名是一个原子。-export([init/1]). % 导出声明,指明模块里哪些函数可以从模块外部调用,类似 public% ...原创 2019-04-07 14:20:17 · 266 阅读 · 0 评论 -
Programming Erlang 中 count_characters(Str) 例子报错
一、原因-module(countChar).-export([count_characters/1]).count_characters(Str) -> count_characters(Str, #{}).count_characters([H|T], #{ H => N } = X) -> count_characters(T, X#{ H...原创 2019-04-06 13:15:35 · 442 阅读 · 0 评论 -
Erlang 映射组 * 1: syntax error before: '{'
一、原因在 erlang 中使用映射组,发现报错:* 1: syntax error before: '{'F1 = #{ a => 1, b => 2 }. 1> * 1: syntax error before: '{'Erlang 版本问题,版本过低导致,由于是通过 yum install erlang 可能版本较旧二、删除原来软件包,安装最新版...原创 2019-04-05 15:27:15 · 2208 阅读 · 0 评论