defmodule Broker do use GenServer def init({protocol, port, to_host, to_port}) do {:ok, listen_socket} = :gen_tcp.listen(port, [ :binary, reuseaddr: true, active: false, backlog: 100 ]) {:ok, %{ protocol: protocol, port: port, to_host: to_host, to_port: to_port, listen_socket: listen_socket }} end def accept_loop(listen_socket) do case :gen_tcp.accept(listen_socket) do {:ok, socket} -> spawn(__MODULE__, :handle_client, [socket]) accept_loop(listen_socket) {:error, reason} -> IO.puts("接受連接失敗: #{reason}") end end end