Prolog sockets

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Prolog sockets

J-O Janson (www.lightmotion.se)
Hi,

I'm working with a GNU Prolog socket problem.  I saw this mailing-list when I searched the web for solutions.

I try to create a Prolog code that works in lke this Java code:
http://docs.oracle.com/javase/tutorial/displayCode.html?code=http://docs.oracle.com/javase/tutorial/networking/sockets/examples/EchoClient.java

I try to make a client that listen for user inputs and writes the user input to the socket. The server echo the data from the socket back to the socket and to the client, that output the data on the screen.

Here is my code:

% The Client
client_init :-
         socket('AF_INET',Socket),
         socket_connect(Socket,'AF_INET'(localhost,7002),SI,SO),
         add_stream_alias(SO, out),
         add_stream_alias(SI, in),
         set_stream_buffering(out, line).
 
client_send:-        
        repeat,
       read(T),    % user input      
        (   B \== end_of_file ->
            (
             format(out, '~q~n',[T]),write(out),        % send over socket
              read_term(in,B,[end_of_term(eof)]),   % read the result
             write(B), nl,    % write on screen
             nl,
             fail  ) ;  !),
            close(out),
           close(in).





% The Server
 server :-
         socket('AF_INET', Sock),
         socket_bind(Sock, 'AF_INET'(localhost, 7002)),
         socket_listen(Sock, 4),
         socket_accept(Sock, C, SI, SO),
         format('accepting a connection from client: ~a~n', [C]),
         repeat,
         read(SI, T),
         (   T \== end_of_file ->
             write(T), nl,
             write(SO,T),
             nl,
             fail ;  !),  
         close(SI),
         socket_close(Sock).





Best Regards  Jan-Olof Janson

________________________________________________________________________________
www.lightmotion.se


_______________________________________________
Users-prolog mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/users-prolog