[erlang-questions] Erlang Basics: Reading File Content

Ari King <>
Mon Dec 16 15:48:34 CET 2013


I've just started with Erlang and to learn/practice I'm attempting to put
together a simple TCP server that reads data from a file and writes it to a
socket. So far I've put together some code to read the data (combination of
ascii, binary, control characters). But since (as I understand) Erlang
doesn't have a return mechanism, how do I read a line of data and return it
to be written to the socket? Right now, the code just recursively collects
the data.

    -module(mock_tcp).
    -export([start/1]).

    start([Ip, Port, Filename]) ->
      io:format("Server available at ~w on port ~w. Reading from ~w.", [Ip,
Port, Filename]),
      {ok, Device) = file:open(Filename, read),
      try get_data(Device)
        after file:close(Device)
      end.

    get_data(Device) ->
      case io:get_line(Device) of
        {ok, Data} -> [Data | get_data(Device)];
        eof -> []
      end.

Thanks.

Ari
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20131216/f89f2e87/attachment.html>


More information about the erlang-questions mailing list