Safe Haskell | None |
---|---|
Language | Haskell98 |
- data ServerSettings = ServerSettings {
- serverPort :: !Int
- serverHost :: !HostPreference
- serverSocket :: !(Maybe Socket)
- serverAfterBind :: !(Socket -> IO ())
- serverNeedLocalAddr :: !Bool
- serverReadBufferSize :: !Int
- data ClientSettings = ClientSettings {
- clientPort :: !Int
- clientHost :: !ByteString
- clientAddrFamily :: !Family
- clientReadBufferSize :: !Int
- data HostPreference
- data Message = Message {
- msgData :: !ByteString
- msgSender :: !SockAddr
- data AppData = AppData {
- appRead' :: !(IO ByteString)
- appWrite' :: !(ByteString -> IO ())
- appSockAddr' :: !SockAddr
- appLocalAddr' :: !(Maybe SockAddr)
- appCloseConnection' :: !(IO ())
- appRawSocket' :: Maybe Socket
- data ServerSettingsUnix = ServerSettingsUnix {
- serverPath :: !FilePath
- serverAfterBindUnix :: !(Socket -> IO ())
- serverReadBufferSizeUnix :: !Int
- data ClientSettingsUnix = ClientSettingsUnix {}
- data AppDataUnix = AppDataUnix {
- appReadUnix :: !(IO ByteString)
- appWriteUnix :: !(ByteString -> IO ())
Documentation
data ServerSettings Source
Settings for a TCP server. It takes a port to listen on, and an optional hostname to bind to.
ServerSettings | |
|
data ClientSettings Source
Settings for a TCP client, specifying how to connect to the server.
ClientSettings | |
|
HasReadBufferSize ClientSettings Source | Since 0.1.13 |
HasPort ClientSettings Source |
data HostPreference Source
Which host to bind.
Note: The IsString
instance recognizes the following special values:
*
meansHostAny
- "any IPv4 or IPv6 hostname"*4
meansHostIPv4
- "any IPv4 or IPv6 hostname, IPv4 preferred"!4
meansHostIPv4Only
- "any IPv4 hostname"*6
meansHostIPv6
@ - "any IPv4 or IPv6 hostname, IPv6 preferred"!6
meansHostIPv6Only
- "any IPv6 hostname"
Note that the permissive *
values allow binding to an IPv4 or an
IPv6 hostname, which means you might be able to successfully bind
to a port more times than you expect (eg once on the IPv4 localhost
127.0.0.1 and again on the IPv6 localhost 0:0:0:0:0:0:0:1).
Any other value is treated as a hostname. As an example, to bind to the IPv4 local host only, use "127.0.0.1".
Representation of a single UDP message
Message | |
|
The data passed to an Application
.
AppData | |
|
data ServerSettingsUnix Source
Settings for a Unix domain sockets server.
ServerSettingsUnix | |
|
data ClientSettingsUnix Source
Settings for a Unix domain sockets client.
data AppDataUnix Source
The data passed to a Unix domain sockets Application
.
AppDataUnix | |
|