Safe Haskell | None |
---|
Data.Conduit.Network.UDP
- data Message = Message {
- msgData :: !ByteString
- msgSender :: !SockAddr
- sourceSocket :: MonadIO m => Socket -> Int -> Producer m Message
- sinkSocket :: MonadIO m => Socket -> Consumer ByteString m ()
- sinkAllSocket :: MonadIO m => Socket -> Consumer ByteString m ()
- sinkToSocket :: MonadIO m => Socket -> Consumer Message m ()
- sinkAllToSocket :: MonadIO m => Socket -> Consumer Message m ()
- data HostPreference
- bindPort :: Int -> HostPreference -> IO Socket
- getSocket :: String -> Int -> IO (Socket, AddrInfo)
UDP message representation
data Message
Representation of a single message
Constructors
Message | |
Fields
|
Basic utilities
sourceSocket :: MonadIO m => Socket -> Int -> Producer m Message
Stream messages from the socket.
The given len
defines the maximum packet size. Every produced item
contains the message payload and the origin address.
This function does not automatically close the socket.
sinkSocket :: MonadIO m => Socket -> Consumer ByteString m ()
Stream messages to the connected socket.
The payload is sent using send
, so some of it might be lost.
This function does not automatically close the socket.
sinkAllSocket :: MonadIO m => Socket -> Consumer ByteString m ()
Stream messages to the connected socket.
The payload is sent using sendAll
, so it might end up in multiple packets.
This function does not automatically close the socket.
sinkToSocket :: MonadIO m => Socket -> Consumer Message m ()
Stream messages to the socket.
Every handled item contains the message payload and the destination
address. The payload is sent using sendTo
, so some of it might be
lost.
This function does not automatically close the socket.
sinkAllToSocket :: MonadIO m => Socket -> Consumer Message m ()
Stream messages to the socket.
Every handled item contains the message payload and the destination
address. The payload is sent using sendAllTo
, so it might end up in
multiple packets.
This function does not automatically close the socket.
Helper Utilities
data HostPreference
Which host to bind.
Note: The IsString
instance recognizes the following special values:
-
*
meansHostAny
-
*4
meansHostIPv4
-
*6
meansHostIPv6
bindPort :: Int -> HostPreference -> IO Socket
Attempt to bind a listening Socket
on the given host/port. If no host is
given, will use the first address available.