Files
alter_proxy/lib/broker.ex
2026-02-15 23:02:43 +08:00

34 lines
688 B
Elixir

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