diff options
| author | Andrew Guschin <guschin.drew@gmail.com> | 2023-03-05 13:45:37 +0400 |
|---|---|---|
| committer | Andrew Guschin <guschin.drew@gmail.com> | 2023-03-05 13:47:41 +0400 |
| commit | a0e8e5a91d15ed8c79f4a1b5914d3a6242c0cbd3 (patch) | |
| tree | 76f76788523a16c0db8cb8f3a90b23912acd37d4 /net/Client.hs | |
| parent | dd73de2e563c332c5a90bb21c5c7e6cbebc0ab86 (diff) | |
Migrated project to cabal
Diffstat (limited to 'net/Client.hs')
| -rw-r--r-- | net/Client.hs | 30 |
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 - |