View Source Membrane.TCP.Socket (Membrane TCP plugin v0.1.0)
TCP Socket behavior
Summary
Types
@type socket_pair_config() :: %{ connection_side: :server | :client | {:client, :inet.ip_address(), :inet.port_number()}, local_address: :inet.socket_address(), local_port_no: :inet.port_number(), local_socket: t() | nil }
@type t() :: %Membrane.TCP.Socket{ connection_side: :server | :client | nil, ip_address: :inet.socket_address(), port_no: :inet.port_number(), sock_opts: [:gen_tcp.option()], socket_handle: :gen_tcp.socket() | nil, state: :listening | :connected | nil }
Functions
@spec accept(listening_socket :: t()) :: {:ok, connected_socket :: t()} | {:error, :inet.posix()}
@spec connect(local :: t(), target :: t()) :: {:ok, t()} | {:error, :inet.posix()}
@spec create_socket_pair( socket_pair_config(), keyword() ) :: {local_socket :: t(), server_socket :: t() | nil}
@spec listen(socket :: t()) :: {:ok, listen_socket :: t()} | {:error, :inet.posix()}
@spec recv(socket :: t()) :: {:ok, Membrane.Payload.t()} | {:error, :closed | :timeout | :inet.posix()}
@spec send(local_socket :: t(), payload :: Membrane.Payload.t()) :: :ok | {:error, :closed | :inet.posix()}