network-run-0.2.8: Simple network runner library
Safe HaskellSafe-Inferred
LanguageHaskell2010

Network.Run.TCP

Description

Simple functions to run TCP clients and servers.

Synopsis

Documentation

runTCPClient :: HostName -> ServiceName -> (Socket -> IO a) -> IO a Source #

Running a TCP client with a connected socket.

runTCPServer :: Maybe HostName -> ServiceName -> (Socket -> IO a) -> IO a Source #

Running a TCP server with an accepted socket and its peer name.

Generalized API

runTCPServerWithSocket Source #

Arguments

:: (AddrInfo -> IO Socket)

Initialize socket.

This function is called while exceptions are masked.

The default (used by runTCPServer) is openServerSocket.

-> Maybe HostName 
-> ServiceName 
-> (Socket -> IO a)

Called for each incoming connection, in a new thread

-> IO a 

Generalization of runTCPServer

openServerSocket :: AddrInfo -> IO Socket Source #

Open socket for server use

The socket is configured to

  • allow reuse of local addresses (SO_REUSEADDR)
  • automatically be closed during a successful execve (FD_CLOEXEC)
  • bind to the address specified