Z-IO-0.1.0.0: A simple and high performance IO toolkit for Haskell
Copyright(c) Winterland 2018
LicenseBSD
Maintainerdrkoster@qq.com
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Z.IO.Network.SocketAddr

Description

This module provides necessary types and constant for low level socket address manipulating.

Synopsis

name to address

data SocketAddr Source #

IPv4 or IPv6 socket address, i.e. the sockaddr_in or sockaddr_in6 struct.

sockAddrFamily :: SocketAddr -> SocketFamily Source #

Show an IPv6 address in the most appropriate notation, based on recommended representation proposed by RFC 5952.

/The implementation is completely compatible with the current implementation of the inet_ntop function in glibc./

IPv4 address

data InetAddr Source #

Independent of endianness. For example 127.0.0.1 is stored as (127, 0, 0, 1).

For direct manipulation prefer inetAddrToTuple and tupleToInetAddr.

inetBroadcast :: InetAddr Source #

255.255.255.255

inetNone :: InetAddr Source #

255.255.255.255

inetAddrToTuple :: InetAddr -> (Word8, Word8, Word8, Word8) Source #

Converts InetAddr to representation-independent IPv4 quadruple. For example for 127.0.0.1 the function will return (127, 0, 0, 1) regardless of host endianness.

tupleToInetAddr :: (Word8, Word8, Word8, Word8) -> InetAddr Source #

Converts IPv4 quadruple to InetAddr.

IPv6 address

data Inet6Addr Source #

Independent of endianness. For example ::1 is stored as (0, 0, 0, 1).

For direct manipulation prefer inet6AddrToTuple and tupleToInet6Addr.

port numbber

data PortNumber Source #

Use the Num instance (i.e. use a literal or fromIntegral) to create a PortNumber value with the correct network-byte-ordering.

>>> 1 :: PortNumber
1
>>> read "1" :: PortNumber
1

Instances

Instances details
Enum PortNumber Source # 
Instance details

Defined in Z.IO.Network.SocketAddr

Eq PortNumber Source # 
Instance details

Defined in Z.IO.Network.SocketAddr

Integral PortNumber Source # 
Instance details

Defined in Z.IO.Network.SocketAddr

Num PortNumber Source # 
Instance details

Defined in Z.IO.Network.SocketAddr

Ord PortNumber Source # 
Instance details

Defined in Z.IO.Network.SocketAddr

Read PortNumber Source # 
Instance details

Defined in Z.IO.Network.SocketAddr

Real PortNumber Source # 
Instance details

Defined in Z.IO.Network.SocketAddr

Show PortNumber Source # 
Instance details

Defined in Z.IO.Network.SocketAddr

Storable PortNumber Source # 
Instance details

Defined in Z.IO.Network.SocketAddr

family, type, protocol

newtype SocketFamily Source #

Constructors

SocketFamily CInt 

Instances

Instances details
Eq SocketFamily Source # 
Instance details

Defined in Z.IO.Network.SocketAddr

Ord SocketFamily Source # 
Instance details

Defined in Z.IO.Network.SocketAddr

Read SocketFamily Source # 
Instance details

Defined in Z.IO.Network.SocketAddr

Show SocketFamily Source # 
Instance details

Defined in Z.IO.Network.SocketAddr

Storable SocketFamily Source # 
Instance details

Defined in Z.IO.Network.SocketAddr

pattern AF_UNSPEC :: SocketFamily Source #

unspecified

pattern AF_INET :: SocketFamily Source #

internetwork: UDP, TCP, etc

pattern AF_INET6 :: SocketFamily Source #

Internet Protocol version 6

newtype SocketType Source #

Constructors

SocketType CInt 

pattern SOCK_ANY :: SocketType Source #

Used in getAddrInfo hints, for any type can be returned by getAddrInfo

newtype ProtocolNumber Source #

Constructors

ProtocolNumber CInt 

Instances

Instances details
Eq ProtocolNumber Source # 
Instance details

Defined in Z.IO.Network.SocketAddr

Ord ProtocolNumber Source # 
Instance details

Defined in Z.IO.Network.SocketAddr

Read ProtocolNumber Source # 
Instance details

Defined in Z.IO.Network.SocketAddr

Show ProtocolNumber Source # 
Instance details

Defined in Z.IO.Network.SocketAddr

Storable ProtocolNumber Source # 
Instance details

Defined in Z.IO.Network.SocketAddr