aboutsummaryrefslogtreecommitdiff
path: root/lib/octochat/servers/echo.ex
blob: fe250793c57464710d88e12b56d2484b855a25ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
defmodule Octochat.Echo do
  @moduledoc """
  Octochat Echo server
  """

  def serve(socket) do
    socket
      |> read_line!()
      |> write_line!(socket)

    serve(socket)
  end

  defp read_line!(socket) do
    {:ok, line} = :gen_tcp.recv(socket, 0)
    line
  end

  defp write_line!(line, socket) do
    :gen_tcp.send(socket, line)
  end

end