-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Simple network runner library -- -- Simple functions to run network clients and servers. @package network-run @version 0.4.0 -- | Simple functions to run TCP clients and servers. module Network.Run.TCP -- | Running a TCP server with an accepted socket and its peer name. -- -- This is the same as: -- --
--   runTCPServerWithSocketOptions []
--   
runTCPServer :: Maybe HostName -> ServiceName -> (Socket -> IO a) -> IO a -- | Running a TCP client with a connected socket for a given listen -- socket. runTCPServerWithSocket :: Socket -> (Socket -> IO a) -> IO a -- | Open TCP socket for server use -- -- This is the same as: -- --
--   openTCPServerSocketWithOptions []
--   
openTCPServerSocket :: AddrInfo -> IO Socket -- | Open socket for server use, and set the provided options before -- binding. -- -- In addition to the given options, the socket is configured to -- -- openTCPServerSocketWithOptions :: [(SocketOption, Int)] -> AddrInfo -> IO Socket resolve :: SocketType -> Maybe HostName -> ServiceName -> [AddrInfoFlag] -> IO AddrInfo -- | Running a TCP client with a connected socket. -- -- This is the same as: -- --
--   runTCPClientWithSettings defaultSettings
--   
runTCPClient :: HostName -> ServiceName -> (Socket -> IO a) -> IO a -- | Settings for client. data Settings -- | Default settings. defaultSettings :: Settings -- | Opening a socket. Use openClientSocketWithOptions to specify -- SocketOption settingsOpenClientSocket :: Settings -> AddrInfo -> IO Socket -- | Running a TCP client with a connected socket. runTCPClientWithSettings :: Settings -> HostName -> ServiceName -> (Socket -> IO a) -> IO a -- | This is the same as -- --
--   openClientSocketWithOptions []
--   
openClientSocket :: AddrInfo -> IO Socket openClientSocketWithOptions :: [(SocketOption, Int)] -> AddrInfo -> IO Socket -- | Simple functions to run TCP clients and servers. module Network.Run.TCP.Timeout -- | Running a TCP server with a connected socket. runTCPServer :: Int -> Maybe HostName -> ServiceName -> TimeoutServer a -> IO a -- | A server type type TimeoutServer a = -- | A global timeout manager Manager -> -- | A thread-local timeout handler Handle -> -- | A connected socket Socket -> IO a -- | Running a TCP client with a connected socket for a given listen -- socket. runTCPServerWithSocket :: Int -> Socket -> TimeoutServer a -> IO a -- | Open socket for server use -- -- This is the same as: -- --
--   openServerSocketWithOptions []
--   
openServerSocket :: AddrInfo -> IO Socket -- | Open socket for server use, and set the provided options before -- binding. -- -- In addition to the given options, the socket is configured to -- -- openServerSocketWithOptions :: [(SocketOption, Int)] -> AddrInfo -> IO Socket -- | Simple functions to run UDP clients and servers. module Network.Run.UDP -- | Running a UDP client with a socket. The client action takes a socket -- and server's socket address. They should be used with sendTo. runUDPClient :: HostName -> ServiceName -> (Socket -> SockAddr -> IO a) -> IO a -- | Running a UDP server with an open socket in a single Haskell thread. runUDPServer :: Maybe HostName -> ServiceName -> (Socket -> IO a) -> IO a -- | Running a UDP server with a connected socket in each Haskell thread. -- The first request is given to the server. Suppose that the server is -- serving on addrS:portS and a client connects to the service -- from addrC:portC. A connected socket is created by binding to -- *:portS and connecting to addrC:portC, resulting in -- (UDP,addrS:portS,addrC:portC) where addrS is given -- magically. This approach is fragile due to NAT rebidings. runUDPServerFork :: [HostName] -> ServiceName -> (Socket -> ByteString -> IO ()) -> IO ()