File: socket008.hs

package info (click to toggle)
ghc-cvs 20040725-2
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 68,484 kB
  • ctags: 19,658
  • sloc: haskell: 251,945; ansic: 109,709; asm: 24,961; sh: 12,825; perl: 5,786; makefile: 5,334; xml: 3,884; python: 682; yacc: 650; lisp: 477; cpp: 337; ml: 76; fortran: 24; csh: 18
file content (21 lines) | stat: -rw-r--r-- 596 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
module Main where

import SocketPrim
import BSD
import System

main =
    getArgs					>>= \ [host, port, message] ->
    getProtocolNumber "tcp"			>>= \ proto ->
    socket AF_INET Stream proto			>>= \ s ->
    getHostByName host				>>= \ (HostEntry _ _ _ haddrs) ->
    connect s (SockAddrInet (mkPortNumber (read port))
		(head haddrs))			>>

    getPeerName s				>>= \ (SockAddrInet _ haddr) ->  
    getHostByAddr AF_INET haddr			>>= \ (HostEntry hname _ _ _) ->
    putStr ("Connected to : " ++ hname ++ "\n") >>
    writeSocket s message			>>
    shutdown s ShutdownBoth			>>
    sClose s