Libp2p.Transport.Tcp (libp2p_elixir v0.9.0)

TCP transport helpers for libp2p.

Uses :gen_tcp in passive mode (active: false) and raw packets.

Summary

Types

socket()

@type socket() :: port()

Functions

accept(listener, timeout \\ 5000)

@spec accept(socket(), timeout()) :: {:ok, socket()} | {:error, term()}

close(sock)

@spec close(socket()) :: :ok

dial(host, port, opts \\ [])

@spec dial(:inet.ip_address() | charlist(), :inet.port_number(), keyword()) ::
  {:ok, socket()} | {:error, term()}

listen(ip, port, opts \\ [])

@spec listen(:inet.ip_address(), :inet.port_number(), keyword()) ::
  {:ok, socket()} | {:error, term()}

peername(sock)

@spec peername(socket()) ::
  {:ok, {:inet.ip_address(), :inet.port_number()}} | {:error, term()}

recv(sock, len, timeout \\ 5000)

@spec recv(socket(), non_neg_integer(), timeout()) ::
  {:ok, binary()} | {:error, term()}

send(sock, data)

@spec send(socket(), iodata()) :: :ok | {:error, term()}

sockname(sock)

@spec sockname(socket()) ::
  {:ok, {:inet.ip_address(), :inet.port_number()}} | {:error, term()}