我写了这个简单的原型客户端,将命令发送到我正在开发的服务器.它可以在GHCi中完美运行,但编译后的版本可以缓冲输入的所有内容,直到我输入“quit”并退出程序.此时,所有输入文本都会被发送.
我究竟做错了什么?为什么编译时会有所不同?
更新:如果使用ghc Main.hs编译它会按预期工作.通过包编译Leksah时会出现问题 – >建立.任何人都知道如何获得Leksah正在使用的命令行?
系统信息:OSX 10.6,GHC 7.0.3,网络2.3.0.2
module Main (
main
) where
import System.IO
import Network
main = do
hServer <- connectTo "localhost" (PortNumber 7000)
hSetBuffering hServer NoBuffering
loop hServer
hClose hServer
where loop :: Handle -> IO ()
loop hServer = do
s <- getLine
hPutStrLn hServer s
case s of "quit" -> return ()
otherwise -> loop hServer
最佳答案 Leksah使用“cabal build”,旧版本“runhaskell Setup build”.