How precisely are you trying to run the client? Are you typing it in to the same terminal? If so, then the client is never actually started, because when you type ./cli the input is going to ./serv and not the shell. Try running the client in a separate terminal.It works for me here on Mac OS X 10.9.2 with GHC 7.8.2.On Tue, May 20, 2014 at 10:42 PM, yang.zhao <hckjsnzf@gmail.com> wrote:
_______________________________________________hi guys,
I'm newbie, just begin to learn Haskell.
now i write a very simple server and client .
Server:
import Control.Concurrent
import System.IO
import Network
port :: Int
port = 1234
main :: IO ()
main = withSocketsDo $ do
s <- listenOn $ PortNumber $ fromIntegral port
(h, _, _) <- accept s
sline <- hGetLine h
hPutStrLn h sline
putStrLn $ "send "++sline
threadDelay 1000000
hClose h
sClose s
Client :
import System.IO
import Network
port :: Int
port = 1234
main :: IO ()
main = withSocketsDo $ do
h <- connectTo "localhost" $ PortNumber $ fromIntegral port
hPutStrLn h "hello"
bs <- hGetContents h
putStrLn bs
hClose h
And, it doesn't work now . I run ./serv , then run ./cli , they will block all the time.
but, when i run ./serv, and telnet localhost 1234 in another terminal, it works fine.
so i don't know what's the wrong with my code.
anybody can tell me about my problem?
os is Debian 7, haskell-platform 2012.2.0.0
thanks a lot!!!
--
K.I.S.S.
Beginners mailing list
Beginners@haskell.org
http://www.haskell.org/mailman/listinfo/beginners
_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://www.haskell.org/mailman/listinfo/beginners