Socket (socket v2.0.1)

Summary

Types

Functions

See Socket.Protocol.accept/1.

Link to this function

accept(self, options)

See Socket.Protocol.accept/2.

Link to this function

accept!(self, options)

See Socket.Protocol.active/1.

Link to this function

active(self, mode)

See Socket.Protocol.active/2.

Link to this function

active!(self, mode)

See Socket.Protocol.close/1.

@spec connect(String.t() | URI.t()) :: {:ok, t()} | {:error, any()}

Create a socket connecting to somewhere using an URI.

Supported URIs

  • tcp://host:port for Socket.TCP
  • ssl://host:port for Socket.SSL
  • ws://host:port/path for Socket.Web (using Socket.TCP)
  • wss://host:port/path for Socket.Web (using Socket.SSL)
  • udp://host:port for Socket:UDP

Example

{ :ok, client } = Socket.connect "tcp://google.com:80"
client.send "GET / HTTP/1.1\r\n"
client.recv
@spec connect!(String.t() | URI.t()) :: t() | no_return()

Create a socket connecting to somewhere using an URI, raising if an error occurs, see connect.

Link to this function

equal?(self, other)

See Socket.Protocol.equal?/2.

@spec listen(String.t() | URI.t()) :: {:ok, t()} | {:error, any()}

Create a socket listening somewhere using an URI.

Supported URIs

If host is * it will be converted to 0.0.0.0.

  • tcp://host:port for Socket.TCP
  • ssl://host:port for Socket.SSL
  • ws://host:port/path for Socket.Web (using Socket.TCP)
  • wss://host:port/path for Socket.Web (using Socket.SSL)
  • udp://host:port for Socket:UDP

Example

{ :ok, server } = Socket.listen "tcp://*:1337"
client = server |> Socket.accept!(packet: :line)
client |> Socket.Stream.send(client.recv)
client |> Socket.Stream.close
@spec listen!(String.t() | URI.t()) :: t() | no_return()

Create a socket listening somewhere using an URI, raising if an error occurs, see listen.

See Socket.Protocol.local/1.

Link to this function

options(self, opts)

See Socket.Protocol.options/2.

Link to this function

options!(self, opts)

Link to this function

packet(self, type)

See Socket.Protocol.packet/2.

Link to this function

packet!(self, type)

See Socket.Protocol.passive/1.

Link to this function

process(self, pid)

See Socket.Protocol.process/2.

Link to this function

process!(self, pid)

See Socket.Protocol.remote/1.