next up previous
Next: About this document... Up: Programing example:a personel Previous: Modification and deletion

Module main(irpr_client.kl1)

This is the socket client program of irpr. The procedure is as follows.

:- 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).