listener_start/3

バイナリ入力ストリームからの入力に聞き耳をたてさせ始めるスレッドを開始させます

listener_start(+Stream, +Callback, -Listener)

listener_start/3は、バイナリ入力ストリームStreamからの入力に聞き耳をたてさせ始めるスレッドを開始させます. 入力は、述語send/2により送り出されなければなりません。 入力項が読取られたとき、コールバック述語Callbackが呼ばれます。 Callbackの最初の引数が変数であるならば、それは読取られた項と取り替えられます。 Callbackの第二の引数が変数であるならば、それはリスナー・オブジェクトと取り替えられます。

引き数

Stream             バイナリ入力ストリーム
Callback           複合項あるいはアトム
Listener           オブジェクト

例題

main(_) :-
    server_start(1352, 3, accept_connection(_), _).

accept_connection(Socket) :- open(Socket, read, Input, [socket,buffered,binary]), open(Socket, write, Output, [socket,buffered,binary]), listener_start(Input, handle_request(_, _, Input, Output), _).

handle_request(logoff, Listener, Input, Output) :- !, close(Input), close(Output), listener_stop(Listener). handle_request(Request, Listener, Input, Output) :- ...

以下も参照して下さい

server_start/4, server_stop/1, client_start/3, client_stop/1, listener_start/3, listener_stop/1, send/2, receive/2.


戻る 続く..