Ticket #42: socket008.hs

File socket008.hs, 0.6 kB (added by igloo, 3 years ago)
Line 
1module Main where
2
3import SocketPrim
4import BSD
5import System
6
7main =
8    getArgs                                     >>= \ [host, port, message] ->
9    getProtocolNumber "tcp"                     >>= \ proto ->
10    socket AF_INET Stream proto                 >>= \ s ->
11    getHostByName host                          >>= \ (HostEntry _ _ _ haddrs) ->
12    connect s (SockAddrInet (mkPortNumber (read port))
13                (head haddrs))                  >>
14
15    getPeerName s                               >>= \ (SockAddrInet _ haddr) -> 
16    getHostByAddr AF_INET haddr                 >>= \ (HostEntry hname _ _ _) ->
17    putStr ("Connected to : " ++ hname ++ "\n") >>
18    writeSocket s message                       >>
19    shutdown s ShutdownBoth                     >>
20    sClose s