zoukankan      html  css  js  c++  java
  • erlang(1)

    这段代码实现了一个基本的服务器功能。

    与常见的服务器不同,这个服务器不处理具体的业务,而是在接收到请求后调用传进来模块的相应方法(handle)去处理。

    第二,这个服务器提供了向指定的进程发送指定消息的功能,个人觉得把这个rpc放到回调模块中可能更容易理解。

    这是一个回调模块,可用于初始化服务器,提供服务器调用的接口,并进行具体的业务实现。 在JAVA,C# 等编程语言中,一般都是接口和具体的实现分开的,所以这是erlang与他们不同的地方之一。

    下面是具体的运行:


    第一句代码运行后我们启动了一个进程,这个进程先调用了name_server:init,然后等待处理客户端进程发送过来的请求。一但接收到请求,就调用初始化模块name_server:handle/2 去处理,并将结果发送回客户端进程。

    第二句代码,我们使用了服务器提供的发送请求的功能,向name_server进程发送了{add,joe,"at home"} 这样的消息。服务器接收到后就调用name_server回调模块中的handle方法去处理。

    第三句代码又向name_server进程发送了{whereis,joe} 这样的消息,服务器进程接收到后同样调用name_server回调模块中的handle方法去处理。


    在这里其实是涉及到三个东西的:被注册为name_server的服务器进程;shell所在的客户端进程;可以用来初始化服务器进程,并做具体业务实现的回调模块name_server。

  • 相关阅读:
    剑指Offer 19 正则表达式匹配
    剑指Offer 37 序列化二叉树
    剑指Offer 36 二叉搜索树与双向链表
    剑指Offer 35 复杂链表的复制
    剑指Offer 45 把数组排成最小的数
    华为有AI,这场转型战有点大
    NLP&深度学习:近期趋势概述
    2018年度10大新兴技术:人工智能、量子计算、增强现实等
    外媒评李开复的《AI·未来》:四大浪潮正在席卷全球
    商汤科技汤晓鸥:其实不存在AI行业,唯一存在的是“AI+“行业
  • 原文地址:https://www.cnblogs.com/yjl49/p/2371963.html
Copyright © 2011-2022 走看看