ANN: network-alt 0.3 and hsgnutls 0.2.1
ekarttun at cs.helsinki.fi
Mon Nov 7 05:01:25 EST 2005
On 07.11 08:16, Tomasz Zielonka wrote:
> > > Does it make sense to have the address type in there?
> > > Most of the time high level applications should not
> > > care whether the socket is IPv4 or IPv6 (or something
> > > entirely else).
> Sometimes applications exchange host addresses between
> themselves, consider a distributed system like DNS or
> a peer-to-peer network.
Which is entirely possible. Just use getHost and getService -
they should produce values which can be fed back to getAddrInfo.
Here is a scetch of a higher level API, does this implement
what you were after - and how to make this better?
newtype IPv4Address = IPv4 Word32
newtype IPv6Address = IPv6 Word128
newtype UnixAddress = Unix String -- Find a better name
newtype AnyAddress = AnyAddr (SocketType,SocketAddress)
class Resolver addrt where
resolve :: String -> Flags -> IO [addrt]
resolveReverse :: addrt -> Flags -> IO [String]
instance Resolver IPv4Address where ...
-- And the same for the rest
type Service = String -- or would Word16 be better?
class Connect addr where
connectStream :: addrt -> Service -> IO Socket
connectDgram :: addrt -> Service -> IO Socket
sendDGramString :: addrt -> Service -> String -> IO ()
- Einar Karttunen
More information about the Libraries