Ticket #2795: Main.hs

File Main.hs, 829 bytes (added by guest, 5 years ago)
Line 
1module Main where
2
3import Network.Socket
4import System
5
6
7
8main = do s <- socket AF_INET Stream 0
9          arg <- getArgs
10          let shost = head arg
11              port  = PortNum 51777
12          host <- inet_addr shost
13          putStrLn "Making the server..."
14          bindSocket s (SockAddrInet port host)
15          b <- sIsBound s
16          putStrLn "Socket bounded!"
17          listen s 5
18          putStrLn "Listening OK"
19          putStrLn "Waiting for clients..."
20          (s', c) <- accept s
21          putStrLn "Client found!"
22          str <- recv s' 255
23          putStr "Message received:"
24          putStr str
25
26
27
28
29foo :: Word16 -> Word16
30foo w16 = shiftL (fromIntegral a) 8 .|. fromIntegral b
31  where a = fromIntegral w16 :: Word8
32        b = fromIntegral (shiftR w16 8) :: Word8