How to resolve the algorithm Echo server step by step in the LFE programming language
How to resolve the algorithm Echo server step by step in the LFE programming language
Table of Contents
Problem Statement
Create a network service that sits on TCP port 12321, which accepts connections on that port, and which echoes complete lines (using a carriage-return/line-feed sequence as line separator) back to clients. No error handling is required. For the purposes of testing, it is only necessary to support connections from localhost (127.0.0.1 or perhaps ::1). Logging of connection information to standard output is recommended. The implementation must be able to handle simultaneous connections from multiple clients. A multi-threaded or multi-process solution may be used. Each connection must be able to echo more than a single line. The implementation must not stop responding to other clients if one client sends a partial line or stops reading responses.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Echo server step by step in the LFE programming language
Source code in the lfe programming language
(defun start ()
(spawn (lambda ()
(let ((`#(ok ,socket) (gen_tcp:listen 12321 `(#(packet line)))))
(echo-loop socket)))))
(defun echo-loop (socket)
(let* ((`#(ok ,conn) (gen_tcp:accept socket))
(handler (spawn (lambda () (handle conn)))))
(lfe_io:format "Got connection: ~p~n" (list conn))
(gen_tcp:controlling_process conn handler)
(echo-loop socket)))
(defun handle (conn)
(receive
(`#(tcp ,conn ,data)
(gen_tcp:send conn data))
(`#(tcp_closed ,conn)
(lfe_io:format "Connection closed: ~p~n" (list conn)))))
You may also check:How to resolve the algorithm Loops/While step by step in the DCL programming language
You may also check:How to resolve the algorithm Terminal control/Ringing the terminal bell step by step in the BASIC programming language
You may also check:How to resolve the algorithm Catalan numbers step by step in the C programming language
You may also check:How to resolve the algorithm Send email step by step in the Pike programming language
You may also check:How to resolve the algorithm Smith numbers step by step in the Clojure programming language