change EOFCode eof_action from end_of_stream to end_of_file, add echo_server.pl example

This commit is contained in:
Mark Thom
2020-05-05 14:15:16 -06:00
parent 53ae8b9bd1
commit 9a63b1751b
2 changed files with 32 additions and 1 deletions

View File

@@ -0,0 +1,31 @@
:- module(echo_server, [echo_server/0,
echo_server/1]).
:- use_module(library(format)).
:- use_module(library(sockets)).
echo_server :-
echo_server('127.0.0.1').
echo_server(Addr) :-
socket_server_open(Addr:Port, ServerSocket),
format("echo_server: connection opened at ~w:~d~n", [Addr, Port]),
socket_server_accept(ServerSocket, Client, Stream, [eof_action(eof_code)]),
format("echo_server: connection accepted from ~a~n", [Client]),
!,
echo_loop(Stream),
socket_server_close(ServerSocket).
echo_loop(Stream) :-
read_term(Stream, Term, []),
( Term == end_of_file ->
true
;
format("received: ~w~n", [Term]),
!,
echo_loop(Stream)
).

View File

@@ -356,7 +356,7 @@ impl MachineState {
}
EOFAction::EOFCode => {
let end_of_stream = self.heap.to_unifiable(
HeapCellValue::Atom(clause_name!("end_of_stream"), None)
HeapCellValue::Atom(clause_name!("end_of_file"), None)
);
stream.past_end_of_stream = true;