haskell / network

Low-level networking interface
http://hackage.haskell.org/package/network
Other
322 stars 186 forks source link

Replacement for old `connectTo` #572

Open amigalemming opened 5 months ago

amigalemming commented 5 months ago

I have some old code not written by me, calling Network.connectTo :: HostName -> PortID -> IO Handle from network<2.7. This function seems to have gone. Please document in networks Changelog what to use instead.

kazu-yamamoto commented 5 months ago

connectTo is a just utility function defined as:

connectTo :: HostName           -- Hostname
          -> PortID             -- Port Identifier
          -> IO Handle          -- Connected Socket
connectTo hostname (Service serv) = connect' "Network.connectTo" hostname serv
connectTo hostname (PortNumber port) = connect' "Network.connectTo" hostname (show port)
connectTo _ (UnixSocket path) = do
    bracketOnError
        (socket AF_UNIX Stream 0)
        (sClose)
        (\sock -> do
          connect sock (SockAddrUnix path)
          socketToHandle sock ReadWriteMode
        )

You can use functions in Network.Socket in this way.

The document in Network.Socket clearly explains how to use this module: https://hackage.haskell.org/package/network-3.1.4.0/docs/Network-Socket.html