socket() :: any()
accept(socket(), integer()) :: {:ok, socket()} | {:error, any()}
acknowlege(socket(), integer()) :: :ok
controlling_process(socket(), pid()) :: :ok | {:error, atom()}
listen(integer(), list()) :: {:ok, socket()} | {:error, any()}
messages() :: {atom(), atom(), atom()}
peer_name(socket()) :: {:ok, {any(), any()}} | {:error, any()}
send(socket(), iodata()) :: :ok | {:error, atom()}
send_file(socket(), binary()) :: :ok | {:error, atom()}
send_file(socket(), binary(), integer(), integer() | :all, list()) :: :ok | {:error, atom()}
set_opts(socket(), integer()) :: {:ok, socket()} | {:error, any()}