floof/lib/floof.ex
2022-11-22 17:35:08 +01:00

30 lines
610 B
Elixir

defmodule Floof do
@moduledoc """
Documentation for `Floof`.
"""
require Logger
def accept(port) do
{:ok, socket} = :gen_tcp.listen(port, [
:binary,
packet: 4,
active: false,
reuseaddr: true
])
Logger.info("Accepting connections on #{port}")
loop_acceptor(socket)
end
def loop_acceptor(socket) do
{:ok, client} = :gen_tcp.accept(socket)
{:ok, pid} = Task.Supervisor.start_child(
Floof.TaskSupervisor, fn -> serve(client) end)
:ok = :gen_tcp.controlling_process(client, pid)
loop_acceptor(socket)
end
def serve(_) do
end
end