自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 Liunx之 DHCP 服务器架设

1、虚拟机软件VM Ware 8.0以上,CentOS 7光盘镜像文件。2、2台以上机器组成的局域网。

2023-12-20 00:26:21 471

原创 Linux之FTP 服务器

修改配置文件中匿名用户权限。可删除文件,可创建文件夹。

2023-12-18 23:01:48 748

原创 linux之Samba服务器

环境:虚拟机CENTOS 7和 测试机相通。

2023-12-17 22:58:27 691

原创 Linux基本命令操作

是linux系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。实际上是shell程序的一部分,其中包含的是一些比较简单的linux系统命令,这些命令由shell程序识别并在shell程序内部完成运行,通常在linux系统加载运行时shell就被加载并驻留在系统内存中。命令的选项,用于启用或关闭命令的某个或某些功能,是可选的。命令执行的参数,表示命令的作用对象,如文件名,用户名等,也是可选的。

2023-12-14 23:43:04 920

原创 实现使用监管者让其中一个进程重起十次

首先,你需要定义一个购买进程的行为。这可以通过定义一个模块并实现gen_server行为模式来完成。ok.这个模块实现了gen_server行为模式,并定义了一个start_link/1函数来启动购买进程。init/1函数初始化状态,包括剩余的尝试次数。函数处理消息,这里我们简单地减少剩余尝试次数。如果尝试次数用完,购买进程应该被终止。接下来,我们需要定义一个supervisor的行为。Supervisors用于启动、监视和管理子进程。

2023-12-13 23:44:54 381

原创 ets:tab2list的不足之处与替代方法,以及gen_server中使用ets的优缺点

是 Erlang/OTP 中的一个函数,用于将 ETS(Erlang Term Storage)表转换为列表。ETS 是 Erlang 中的一个内建数据库,允许开发者在内存中存储大量数据。

2023-12-13 02:24:01 974

原创 在gen_server使用ets实例演示

Erlang的ETS(Erlang term storage)是一种在内存中存储数据的结构,类似于其他语言中的数据库。它允许你在Erlang程序中存储和检索数据。gen_server是Erlang中用于创建服务器的一种模式,它能够处理并发的客户端请求。以下是在gen_server首先,我们可以在gen_server的init函数中使用在这个例子中,我们创建了一个新的ETS表,并将其命名为"state"。

2023-12-11 23:53:29 507

原创 erlang实现用ets做一级缓存

在这个例子中,我们创建了一个名为"cache"的ETS表,并实现了五个函数:start/0、stop/0、get/1、put/2和update/3。stop/0函数用于删除ETS表。update/3函数用于更新ETS表中给定键的值,如果键不存在则插入新的键值对,如果键已存在则将旧值和新值相加并更新。当请求获取一个键的值时,如果该键不存在于ETS表中,我们将从DETS表中检索该键的值,并将其添加到ETS表中。如果需要更新某个键的值,我们直接向ETS表中插入新的值,并在DETS表中删除该键(如果有必要)。

2023-12-10 22:02:10 398

原创 Elang之ETS系列函数功能与用法详解

导表时,一些关于表的必须的信息被导到头部,这些信息包括表的类型,名字,访问权限,大小,版本和是否是已命名表,同事还有关于教导文件中的一些扩展信息相关的注释,这些可以使文件中的对象数或者是头部和文件中record的MD5值。跟 ets:select/2 一样,都是根据匹配规范匹配表里的对象数据,不过如果是 ordered_set 类型的 ETS 表的话会返回一个倒序的列表,其他类型的表返回的值跟 ets:select/2 一样。返回一个以{Item, Value}元祖形式的列表的ETS表的信息。

2023-12-10 21:25:08 1103

原创 lib_chan代码

lib_chan这篇主要就是展示的详细代码。

2023-12-06 23:37:00 341

原创 套接字应用程序

这章节是关于实现lib_chan库的。lib_chan的代码在之上实现了一个完整的网络层,能够提供认证和Erlang数据流功能。一旦理解了lib_chan的原理,就能量身定制我们自己的通信基础结构,并把它叠加在TCP/IP之上了。就lib_chan本身而言,它是一种构建分布式系统的有用组件。

2023-12-05 22:40:32 944

原创 OTP模板

一:通用服务器模版将在本文中列出supervisor和的完整模板清单。这些模板内建于Emacs模式,这样便于直接使用和学习。一:通用服务器模版。

2023-12-04 23:16:06 360

原创 用Mnesia为cache增加分布式支持

在设计分布式程序时,可供选择的通信方式主要有两种:异步通信和同步通信。采用异步通信时,发送方无须等待任何确认或应答。而在采用同步通信时,发送方会处于挂起状态,直至收到回复为止((即便只是“收到,多谢”之类的确认性回复)。Erlang消息传递的基本形式就是异步的,因为这种形式最为简单灵活:一般来说异步通信更适合分布式编程,而且同步通信总可以利用成对的异步请求/响应消息来模拟(就是这样做的)。

2023-12-04 01:04:50 987

原创 Erlang/OTP中的日志与事件处理

日志功能是构筑在Erlang的事件处理框架之上的,而该框架又以gen_event行为模式为基础。该行为模式为事件处理器封装了简单易用的接口。要想进一步调整Erlang/OTP的日志框架,就得编写新的gen_event行为模式的实现模块。gen_event行为模式接口与gen_server的类似:其中包含你所熟悉的init和terminate回调函数,也包含和回调。不过gen_event接口用取代了,这儿正是你接收错误日志事件的地方。gen_server和gen_event回调模块的使用。

2023-11-30 23:44:00 968

原创 创建OTP应用的基本骨架到实现缓存

应用结构的搭建分为一下几个步骤:(1)创建标准应用目录布局;(2)编写文件(3)编写应用行为模式实现模块,即(4)实现顶层监督者,即。

2023-11-29 22:52:05 1063

原创 OTP应用与监督机制

浅显地说,OTP应用无非就是一组相互关联的代码。我们将其中一部分称为库应用:这些应用纯粹是供其他应用调用的一系列模块的集合。(Erlang/OTP的stdlib就是库应用的一个实例。)还有一些应用则更为常见,它们具有自己的生存周期,启动之后会运行上一段时间,最后终止。我们将这类应用称为主动应用。每个主动应用都配有一个负责对应用进程进行管理的根监督者。

2023-11-28 22:17:00 879

原创 开发基于TCP的RPC服务

该RPC服务器会并接受来自外来TCP客户端的连接。建立连接之后,客户端将可以通过TCP之上的简易ASCII文本协议执行函数调用。下图展示了该RPC服务器的设计和功能:注:RPC服务器进程通过套接字与外界相连。它通过TCP接收和执行请求,并将结果返回给客户端。该图展示了两个进程。一个是;由它派生出实际的RPC服务器进程。第二个进程会等待其他人的连接。当连接到来时,它会从连接上读取描述的ASCI文本,并在执行调用后将结果通过TCP流返回。这类功能在很多场合都能派上用场,包括在紧要关头下的远程管理和诊断。

2023-11-27 21:27:18 828 1

原创 Mnesia:Erlang数据库

在做任何事之前,必须先创建一个Mnesia数据库。这件事只需要做一次。会在NodeList(它必须是一个包含有效Erlang节点的列表)里的所有节点上都初始化一个新的Mnesia数据库。这个案例给出的节点列表是[node()],也就是当前节点。Mnesia完成初始化并创建了一个名为的目录结构来保存数据库。然后退出Erlang shell,用操作系统的ls命令进行验证。/home/joe/some/path/to/Mnesia.company是将要保存这个数据库的目录。

2023-11-26 22:16:56 949 1

原创 用WebSocket和Erlang 进行浏览

下图展示了一个运行在浏览器里的时钟。所有无关的浏览器窗口细节,比如菜单、工具栏和滚动条都没有显示出来,这样我们就能把注意力集中在代码上。这个应用程序的关键部分是显示界面,它里面的时间会每秒钟更新一次。从Erlang的角度看,整个浏览器就是一个进程。因此,为了把时钟更新为之前显示的值,Erlang浏览器收到fill_div后就把它转换成JavaScript命 令,后者随即把指派的字符串作为内容填充到div中。

2023-11-23 23:47:35 1061

原创 ETS 和 gen_server 的使用

ETS和DETS表保存的是元组。元组里的某一个元素(默认是第一个)被称为该表的键。通过键来向表里插入和提取元组。当我们向表里插入一个元组时会发生什么,取决于表的类型和键的值。一些表被称为set,它们要求表里。另一些被称为同键表bag,它们允许。ets有4种类型的table,如表所示:基本的表类型(异键表和同键表)各有两个变种,它们共同构成四种表类型:异键、有序异键(ordered set)、同键和副本同键(在异键表里,各个元组里的键都必须是独一 无二的。

2023-11-22 23:20:33 62

原创 Erlang套接字编程(下篇)

UDP是一种无连接协议,意思是客户端向服务器发送消息之前不必建立连接。这就意味着UDP非常适合那些大量客户端向服务器发送简短消息的应用程序。用Erlang编写UDP客户端和服务器要比编写TCP程序简单得多,因为我们无需担心服务器连接的维护工作。

2023-11-21 23:34:45 38 1

原创 Erlang套接字编程(上篇)

使用TCP。

2023-11-20 23:43:36 102 1

原创 Erlang文件编程(下篇)

写入文件所涉及的操作和读取文件基本相同。

2023-11-17 22:49:47 56 1

原创 Erlang 文件编程(上篇)

data1.dat包含一个由各种Erlang数据类型组成的序列,可调用来读取所有的假定File包含一个由Erlang数据类型组成的序列。如果它能读取文件里的所有数据类型,就会返回{ok, [Term]},否则会返回。

2023-11-16 23:38:05 63 1

原创 Erlang分布式编程和接口技术

名称服务器这种程序会返回一个给定名称的关联值。我们也可以修改某个名称所关联的值。

2023-11-15 23:48:14 132

原创 Erlang并发程序中的错误

错误处理的理念相对于顺序程序,处理并发程序里的错误涉及一种完全不同的思考方式。设想一个只有单一顺序进程的系统。如果这个进程挂了,麻烦可能就大了,因为没有其他进程能够帮忙。出于这个原因,顺序语言把重点放在故障预防上,强调进行防御式编程。在Erlang里,我们有大量的进程可供支配,因此任何单进程故障都不算特别重要。通常只需编写少量的防御性代码,而把重点放在编写纠正性代码上。我们采取各种措施检测错误,然后在错误发生后纠正它们。

2023-11-14 22:11:31 57

原创 Erlang并发编程

主要讲述erlang的并发基础

2023-11-13 22:41:24 48

原创 Erlang的编译和运行程序

开始用Erlang编程时,多半会把所有的模块和文件放在同一个目录里,然后从这个目录启动Erlang。如果这么做,Erlang的载入器可以百分百找到你的代码。但是,随着程序变得越来越复杂,你会想要把它们分成多个易于管理的区块,并把代码放进不同的目录里。另外,当你想要包含来自其他项目的代码时,这些外部代码会有自己的目录结构。1.设置载入代码的搜索路径Erlang的运行时系统使用一种。要让它能正确工作,必须来找到正确版本的代码。这种代码自动载入机制实际上是用Erlang编写的,

2023-11-10 22:56:23 715 1

原创 Erlang的类型介绍

如果不提供,原子undefined就会被当成默认值,而这个类型会逐渐扩散到程序的其他部分,可能导致奇特的类型错误。

2023-11-09 23:03:54 108 1

原创 Erlang顺序编程杂项集(下篇)

Erlang当Erlang的预处理器epp碰到一个?MacroName形式的表达式时,就会展开这个宏。宏定义里出现的变量会匹配对应宏调用位置的完整形式。另外还有一些预定义宏提供了关于当前模块的信息。列举如下:(1)?FILE 展开成当前的文件名;(2)?MODULE 展开成当前的模块名;(3)?LINE 展开成当前的行号。

2023-11-08 23:07:46 116 1

原创 Erlang顺序编程杂项集(上篇)

主要介绍一些Erlang顺序编程相关的基础概念

2023-11-07 23:39:08 66

原创 [ElasticSearch全文搜索引擎]

ElasticSearch全文搜索引擎基础

2023-08-29 12:00:50 132 3

原创 【MySQL数据库基础知识进阶 三:MySQL - Date/Time函数】

microsecond()函数n用于从给定的日期时间或时间获取微秒的值。addtime()函数用于获取添加了一些时间间隔的时间/日期时间值。timediff()函数用于获取给定的两个时间/日期时间之间的时差。date_add()函数用于获取添加某些日期/日期时间间隔的日期。subtime()函数用于获取被某些时间间隔减去的时间/日期时间。MySQL日期/时间函数用于操纵时间值。month()函数用于从给定的日期时间或时间获取month的值。adddata()函数用于获取添加一些时间/日期间隔的日期。

2023-07-22 18:48:15 122

原创 【MySQL数据库基础知识进阶 二:MySQL中的数学函数】

主要罗列了数据库的数学函数的使用方法。

2023-07-22 18:46:54 37

原创 【MySQL数据库基础知识进阶 一 :MySQL 查询数据的sql语句】

MySQL 数据库使用SQL SELECT语句来查询数据。你可以通过 mysql> 命令提示窗口中在数据库中查询数据,或者通过PHP脚本来查询数据。

2023-07-22 18:44:59 326

原创 【vue界面设计背景以及表单透明样式的灵活运用】

主要就是讲解背景设置和表单透明样式的简单设计和相关属性的灵活运用

2023-07-20 21:02:24 1341

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除