Exercício 2

OC 1999/2000 (Exercícios Práticos)


Enunciado

  1. Lance 2 nós Erlang na mesma máquina usando "short name" (-sname nome);
  2. Execute o comando net_adm:ping/1 de um nó para o outro:
  3. Tente os dois pontos anteriores, mas usando "long names" (-name nome);
  1. Desenvolva um módulo em Erlang que permita criar dois processos:
  2. Lance os dois processos:

Índice


Solução

4.

(versão 1)

-module(exercicio2).
-export([receiver/0,receiver2/0,sender/1]).
receiver() ->
	spawn(exercicio2,receiver2,[]).
receiver2() ->
	receive
		Msg -> io:format("Mensagem recebida: ~w.~n",[Msg])
	end.
sender(Pid_receiver) ->
	Pid_receiver ! mensagem.

5. Para ser possivel lancar os processos em nós diferentes, é necessário que seja especificado no lançamento, o no/máquina em que irá o processo irá correr. Para isso substitui-se a função spawn/3 por spawn/4 permitindo que o nó seja especificado como argumento.

(versão 2)

-module(exercicio2).
-export([receiver/1,receiver2/0,sender/1]).
receiver(No) ->
	spawn(No,exercicio2,receiver2,[]).
receiver2() ->
	receive
		Msg -> io:format("Mensagem recebida: ~w.~n",[Msg])
	end.
sender(Pid_receiver) ->
	Pid_receiver ! mensagem.

Índice


Última actualização: 17-05-2000

OC 1999/2000 (Exercícios Práticos)