-module(ping_distrib). -compile(export_all). ping(Node) -> % запускаем процесс на другом узле Pid = spawn(Node, fun pong/0), Pid ! {ping, self()}, ping_loop(Pid). ping_loop(Pid) -> receive {pong, Pid} -> io:format("received pong~n"), timer:sleep(random:uniform(1200)), Pid ! {ping, self()}, ping_loop(Pid) % ждем... after 1000 -> io:format("pong timed out~n") end. % входная точка процесса pong pong() -> receive {ping, Pid} -> io:format("received ping~n"), timer:sleep(random:uniform(1200)), Pid ! {pong, self()}, pong() % цикл after 1000 -> io:format("ping timed out~n") end.