network-conduit-0.3.0: Stream socket data using conduits.

Safe HaskellSafe-Infered

Data.Conduit.Network

Contents

Synopsis

Basic utilities

sourceSocket :: MonadIO m => Socket -> Source m ByteStringSource

Stream data from the socket.

This function does not automatically close the socket.

Since 0.0.0

sinkSocket :: MonadIO m => Socket -> Sink ByteString m ()Source

Stream data to the socket.

This function does not automatically close the socket.

Since 0.0.0

Simple TCP server/client interface.

type Application m = Source m ByteString -> Sink ByteString m () -> m ()Source

A simple TCP application. It takes two arguments: the Source to read input data from, and the Sink to send output data to.

Since 0.3.0

Server

data ServerSettings Source

Settings for a TCP server. It takes a port to listen on, and an optional hostname to bind to.

Since 0.3.0

runTCPServer :: (MonadIO m, MonadBaseControl IO m) => ServerSettings -> Application m -> m ()Source

Run an Application with the given settings. This function will create a new listening socket, accept connections on it, and spawn a new thread for each connection.

Since 0.3.0

Client

data ClientSettings Source

Settings for a TCP client, specifying how to connect to the server.

Since 0.2.1

Constructors

ClientSettings 

runTCPClient :: (MonadIO m, MonadBaseControl IO m) => ClientSettings -> Application m -> m ()Source

Run an Application by connecting to the specified server.

Since 0.2.1

Helper utilities

data HostPreference Source

Which host to bind.

Note: The IsString instance recognizes the following special values:

  • * means HostAny
  • *4 means HostIPv4
  • *6 means HostIPv6

bindPort :: Int -> HostPreference -> IO SocketSource

Attempt to bind a listening Socket on the given host/port. If no host is given, will use the first address available.

Since 0.3.0

getSocket :: String -> Int -> IO SocketSource

Attempt to connect to the given host/port.

Since 0.2.1