This commit is contained in:
2026-02-15 23:02:43 +08:00
parent a116598698
commit 9d91a77647

View File

@@ -1,19 +1,26 @@
defmodule Broker do defmodule Broker do
use GenServer use GenServer
def init(opts) do def init({protocol, port, to_host, to_port}) do
{:ok, listen_socket} = {:ok, listen_socket} =
:gen_tcp.listen(opts[:port], [ :gen_tcp.listen(port, [
:binary, :binary,
reuseaddr: true, reuseaddr: true,
active: false, active: false,
backlog: 100 backlog: 100
]) ])
{:ok, opts} {:ok,
%{
protocol: protocol,
port: port,
to_host: to_host,
to_port: to_port,
listen_socket: listen_socket
}}
end end
defp accept_loop(listen_socket) do def accept_loop(listen_socket) do
case :gen_tcp.accept(listen_socket) do case :gen_tcp.accept(listen_socket) do
{:ok, socket} -> {:ok, socket} ->
spawn(__MODULE__, :handle_client, [socket]) spawn(__MODULE__, :handle_client, [socket])