erlang学习理解笔记(1)

第一个并发程序实验


文件程序的服务器

afile_server.erl 文件:


-module(afile_server). %%模块名称

-export([start/1,loop/1]).  %%要导出的方法(别的模块可以调用)

start(Dir)->
    spawn(afile_server,loop,[Dir]).  %%spawn是创建一个执行afile_server 模块中loop(,[Dir])方法的进程 并返回一个进程标示符

 loop(Dir)->
     receive    %%接收数据 匹配处理
         {Client,list_dir} ->

         Client ! {self(),file:list_dir(Dir)};


         {Client,{get_file,File}}->
         Full=filename:join(Dir,File),

         Client ! {self(),file:read_file(Full)};

     end,
     loop(Dir).


文件程序的客户端

afile_client文件:


-module(afile_client).
-export([ls/1,get_file/2]).

ls(Server)->
    Server ! {self(),list_dir}, %%向服务器发送请求
    receive %%接收服务器返回的数据处理
        {Server,FileList}->
        FileList
    end.

get_file(Server,File)->
    Server ! {self(),{get_file,File}},
    receive
        {Server,Content}->
        Content
    end.   

erlang调用:

1>c(afile_server).

2>c(afile_client).

3>Server=afile_server:start("."). 开启服务返回一个进程的标示符
4>afile_client:get_file(Server,"test.txt"). 向Server这个进程发送请求并得到返回数据

输出test.txt文本的内容



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值