next up previous
Next: この文書について... Up: プログラミング例:名簿管理システム Previous: レコードの修正と削除

モジュール main(irpr_client.kl1)

名簿管理のソケット・クライアントプログラムである。 処理手順は次の通り。

:- module main.

main :- client.

client :-
    unix:unix([connect(inet("localhost",8888),Result)]),
    client1(Result).

client1(normal(So)) :-
    merge(Si, So),
    unix:argv(ARGVL),
    klicio:klicio([stdout(OutResult),stdin(InResult)]),
    client2(ARGVL,InResult,OutResult,Si).

client2(["shutdown"],normal(Stdin),normal(Stdout),S) :-
    S = [fwrite("shutdown"),#"\n",fflush(_)],
    Stdin = [], Stdout = [].
otherwise.
client2([Mode],normal(Stdin),normal(Stdout),Soc) :-
    Soc = [ #"i", #"r", #"p", #"r", #"\n", fflush(_),
          fwrite(Mode), #"\n", fflush(Stat1)|{SocIn,SocOut}],
    irpr_lib:client_rw_loop(Stdin,SocOut,SocIn,Stdout).