create_client(Host, Port) :- tcp_socket(Socket), tcp_connect(Socket, Host:Port), tcp_open_socket(Socket, ReadFd, WriteFd), set_stream(WriteFd, buffer(false)), set_stream(ReadFd, buffer(false)), repeat, read_line_to_codes(ReadFd, Data), string_to_atom(Data, String), process(WriteFd,String), close(ReadFd), close(WriteFd). process(Stream, String) :- concat_atom(Atoms, ' ', String), [User, Event, Channel, FirstWord | Tail] = Atoms, write([User,Event,Channel,FirstWord,Tail]), nl, process(Stream, User, Event, Channel, FirstWord, [Tail]), fail. process(Stream, 'NOTICE AUTH :*** No identd (auth) response') :- write(Stream, 'USER foo boo coo moo'), nl(Stream), write(Stream, 'NICK boply'), nl(Stream), write(Stream, 'JOIN #bfirc'), nl(Stream), !, fail. process(Stream, _,'PRIVMSG',Channel, ':boply:', [Head|Tail]) :- write(Stream, 'PRIVMSG #bfirc :cow dung'), nl(Stream), write(Tail), nl, fail. process(Stream,end_of_file) :- !.