summaryrefslogtreecommitdiff
path: root/net/client.hs
diff options
context:
space:
mode:
authorAndrew Guschin <guschin.drew@gmail.com>2023-03-05 13:45:37 +0400
committerAndrew Guschin <guschin.drew@gmail.com>2023-03-05 13:47:41 +0400
commita0e8e5a91d15ed8c79f4a1b5914d3a6242c0cbd3 (patch)
tree76f76788523a16c0db8cb8f3a90b23912acd37d4 /net/client.hs
parentdd73de2e563c332c5a90bb21c5c7e6cbebc0ab86 (diff)
Migrated project to cabal
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
-