/*************************************************************** * ping.kl1: Pinging client * * by TAKAGI Yusuke (mailto:takagi@ueda.info.waseda.ac.jp) * 2000-10-07 prototyped. * * import remote.kl1 (dklic-2000-10) ***************************************************************/ :- module main. main :- true | klicio:klicio([stdout(O)]), main(O). main(normal(O)) :- true | unix:argc(Argc), get_host(Argc, Host), remote:call(pingd:pingd(Ts), Host), putt(0, Host, Ts, O). putt(N, Host, Ts, O) :- true | O = [putt(Host), fwrite(": sent "), putt(N), fflush(F) | O1], putt(F, N, Host, Ts, O1). putt(0, N, Host, Ts, O) :- true | Ts = [N, T | Ts1], N1 := N + 1, gett(N1, T, Host, Ts1, O). gett(N, T, Host, Ts, O) :- wait(T) | O = [fwrite(", received "), putt(T), nl, fflush(0) | O1], putt(N, Host, Ts, O1). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% get_host(Argc, Host) :- Argc=:=0 | Host = "localhost". get_host(Argc, Host) :- Argc > 0 | unix:argv([Host | _]). % end ping.kl1.