winio-0.1: Network/Socket/Compat.hs
{- |
Module : Network.Socket.Compat
Copyright : 2009 Felix Martini
License : BSD-style (see LICENSE for license terms)
Maintainer : felix@felixmartini.com
Stability : Experimental
Functions in this module are compatible with functions in the
Network.Socket module but use I/O functions from the winio package.
-}
module Network.Socket.Compat where
import Network.Socket (Family, ProtocolNumber, Socket, SocketType, SockAddr)
import qualified Network.Socket as Socket
import qualified System.Windows.IO as IO
socket :: Family -> SocketType -> ProtocolNumber -> IO Socket
socket fam sock_type proto_num = do
sock <- Socket.socket fam sock_type proto_num
IO.associateSocketWithPort sock
return sock
accept :: Socket -> IO (Socket, SockAddr)
accept sock = do
(client_sock, client_addr) <- Socket.accept sock
IO.associateSocketWithPort client_sock
return (client_sock, client_addr)