summaryrefslogtreecommitdiff
path: root/net/client.hs
diff options
context:
space:
mode:
Diffstat (limited to 'net/client.hs')
-rw-r--r--net/client.hs30
1 files changed, 0 insertions, 30 deletions
diff --git a/net/client.hs b/net/client.hs
deleted file mode 100644
index 863df6e..0000000
--- a/net/client.hs
+++ /dev/null
@@ -1,30 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
--- Echo client program
-module Main (main) where
-
-import qualified Control.Exception as E
-import qualified Data.ByteString.Char8 as C
-import Network.Socket
-import Network.Socket.ByteString (recv, sendAll)
-
-main :: IO ()
-main = runTCPClient "127.0.0.1" "3000" $ \s -> do
- sendAll s "Hello, world!"
- msg <- recv s 1024
- putStr "Received: "
- C.putStrLn msg
-
--- from the "network-run" package.
-runTCPClient :: HostName -> ServiceName -> (Socket -> IO a) -> IO a
-runTCPClient host port client = withSocketsDo $ do
- addr <- resolve
- E.bracket (open addr) close client
- where
- resolve = do
- let hints = defaultHints { addrSocketType = Stream }
- head <$> getAddrInfo (Just hints) (Just host) (Just port)
- open addr = do
- sock <- socket (addrFamily addr) (addrSocketType addr) (addrProtocol addr)
- connect sock $ addrAddress addr
- return sock
-