IdrisDoc: Network.Socket

Network.Socket

Low-Level C Sockets bindings for Idris. Used by higher-level, cleverer things.

Original (C) SimonJF, MIT Licensed, 2014
Modified (C) The Idris Community, 2015, 2016

accept : (sock : Socket) -> IO (Either SocketError (Socket, SocketAddress))

Accept a connection on the provided socket.

Returns on failure a SocketError
Returns on success a pairing of:

  • Socket :: The socket representing the connection.
  • SocketAddress :: The
sock

The socket used to establish connection.

bind : (sock : Socket) -> (addr : Maybe SocketAddress) -> (port : Port) -> IO Int

Binds a socket to the given socket address and port.
Returns 0 on success, an error code otherwise.

close : Socket -> IO ()

Close a socket

connect : (sock : Socket) -> (addr : SocketAddress) -> (port : Port) -> IO ResultCode

Connects to a given address and port.
Returns 0 on success, and an error number on error.

listen : (sock : Socket) -> IO Int

Listens on a bound socket.

sock

The socket to listen on.

recv : (sock : Socket) -> (len : ByteLength) -> IO (Either SocketError (String, ResultCode))

Receive data on the specified socket.

Returns on failure a SocketError
Returns on success a pairing of:

  • String :: The payload.
  • ResultCode :: The result of the underlying function.
sock

The socket on which to receive the message.

len

How much of the data to receive.

recvAll : (sock : Socket) -> IO (Either SocketError String)

Receive all the remaining data on the specified socket.

Returns on failure a SocketError
Returns on success the payload String

sock

The socket on which to receive the message.

recvFrom : (sock : Socket) -> (len : ByteLength) -> IO (Either SocketError (UDPAddrInfo, String, ResultCode))

Receive a message.

Returns on failure a SocketError.
Returns on success a triple of

  • UDPAddrInfo :: The address of the sender.
  • String :: The payload.
  • Int :: Result value from underlying function.
sock

The channel on which to receive.

len

Size of the expected message.

send : (sock : Socket) -> (msg : String) -> IO (Either SocketError ResultCode)

Send data on the specified socket.

Returns on failure a SocketError.
Returns on success the ResultCode.

sock

The socket on which to send the message.

msg

The data to send.

sendTo : (sock : Socket) -> (addr : SocketAddress) -> (port : Port) -> (msg : String) -> IO (Either SocketError ByteLength)

Send a message.

Returns on failure a SocketError
Returns on success the ResultCode

sock

The socket on which to send the message.

addr

Address of the recipient.

port

The port on which to send the message.

msg

The message to send.

socket : (fam : SocketFamily) -> (ty : SocketType) -> (pnum : ProtocolNumber) -> IO (Either SocketError Socket)

Creates a UNIX socket with the given family, socket type and protocol
number. Returns either a socket or an error.