Safe Haskell | None |
---|---|
Language | Haskell98 |
Data.Conduit.Network
Synopsis
- sourceSocket :: MonadIO m => Socket -> ConduitT i ByteString m ()
- sinkSocket :: MonadIO m => Socket -> ConduitT ByteString o m ()
- data AppData
- appSource :: (HasReadWrite ad, MonadIO m) => ad -> ConduitT i ByteString m ()
- appSink :: (HasReadWrite ad, MonadIO m) => ad -> ConduitT ByteString o m ()
- appSockAddr :: AppData -> SockAddr
- appLocalAddr :: AppData -> Maybe SockAddr
- data ServerSettings
- serverSettings :: Int -> HostPreference -> ServerSettings
- runTCPServer :: ServerSettings -> (AppData -> IO ()) -> IO a
- runTCPServerWithHandle :: ServerSettings -> ConnectionHandle -> IO a
- forkTCPServer :: MonadUnliftIO m => ServerSettings -> (AppData -> m ()) -> m ThreadId
- runGeneralTCPServer :: MonadUnliftIO m => ServerSettings -> (AppData -> m ()) -> m a
- data ClientSettings
- clientSettings :: Int -> ByteString -> ClientSettings
- runTCPClient :: ClientSettings -> (AppData -> IO a) -> IO a
- runGeneralTCPClient :: MonadUnliftIO m => ClientSettings -> (AppData -> m a) -> m a
- getPort :: HasPort a => a -> Int
- getHost :: ClientSettings -> ByteString
- getAfterBind :: HasAfterBind a => a -> Socket -> IO ()
- getNeedLocalAddr :: ServerSettings -> Bool
- setPort :: HasPort a => Int -> a -> a
- setHost :: ByteString -> ClientSettings -> ClientSettings
- setAfterBind :: HasAfterBind a => (Socket -> IO ()) -> a -> a
- setNeedLocalAddr :: Bool -> ServerSettings -> ServerSettings
- data HostPreference
Basic utilities
sourceSocket :: MonadIO m => Socket -> ConduitT i ByteString m () Source #
Stream data from the socket.
This function does not automatically close the socket.
Since 0.0.0
sinkSocket :: MonadIO m => Socket -> ConduitT ByteString o m () Source #
Stream data to the socket.
This function does not automatically close the socket.
Since 0.0.0
Simple TCP server/client interface.
appSockAddr :: AppData -> SockAddr #
appLocalAddr :: AppData -> Maybe SockAddr #
Server
data ServerSettings #
Instances
HasAfterBind ServerSettings | |
Defined in Data.Streaming.Network Methods afterBindLens :: Functor f => ((Socket -> IO ()) -> f (Socket -> IO ())) -> ServerSettings -> f ServerSettings | |
HasPort ServerSettings | |
Defined in Data.Streaming.Network Methods portLens :: Functor f => (Int -> f Int) -> ServerSettings -> f ServerSettings | |
HasReadBufferSize ServerSettings | |
Defined in Data.Streaming.Network Methods readBufferSizeLens :: Functor f => (Int -> f Int) -> ServerSettings -> f ServerSettings |
serverSettings :: Int -> HostPreference -> ServerSettings Source #
runTCPServer :: ServerSettings -> (AppData -> IO ()) -> IO a #
runTCPServerWithHandle :: ServerSettings -> ConnectionHandle -> IO a #
forkTCPServer :: MonadUnliftIO m => ServerSettings -> (AppData -> m ()) -> m ThreadId Source #
Fork a TCP Server
Will fork the runGeneralTCPServer function but will only return from this call when the server is bound to the port and accepting incoming connections. Will return the thread id of the server
Since 1.1.4
runGeneralTCPServer :: MonadUnliftIO m => ServerSettings -> (AppData -> m ()) -> m a Source #
Run a general TCP server
Same as runTCPServer
, except monad can be any instance of
MonadUnliftIO
.
Note that any changes to the monadic state performed by individual client handlers will be discarded. If you have mutable state you want to share among multiple handlers, you need to use some kind of mutable variables.
Since 1.1.3
Client
data ClientSettings #
Instances
HasPort ClientSettings | |
Defined in Data.Streaming.Network Methods portLens :: Functor f => (Int -> f Int) -> ClientSettings -> f ClientSettings | |
HasReadBufferSize ClientSettings | |
Defined in Data.Streaming.Network Methods readBufferSizeLens :: Functor f => (Int -> f Int) -> ClientSettings -> f ClientSettings |
clientSettings :: Int -> ByteString -> ClientSettings Source #
runTCPClient :: ClientSettings -> (AppData -> IO a) -> IO a #
runGeneralTCPClient :: MonadUnliftIO m => ClientSettings -> (AppData -> m a) -> m a Source #
Run a general TCP client
Same as runTCPClient
, except monad can be any instance of MonadUnliftIO
.
Since 1.1.3
Getters
getHost :: ClientSettings -> ByteString #
getAfterBind :: HasAfterBind a => a -> Socket -> IO () #
getNeedLocalAddr :: ServerSettings -> Bool #
Setters
setHost :: ByteString -> ClientSettings -> ClientSettings #
setAfterBind :: HasAfterBind a => (Socket -> IO ()) -> a -> a #
setNeedLocalAddr :: Bool -> ServerSettings -> ServerSettings #
Types
data HostPreference #