我用相同的代码问了一个关于 windows 上的信号的问题,这是另一个问题
import IO
import Control.Exception hiding (catch)
import Control.Concurrent
import Network
main = withSocketsDo $ do {main'}
main' = listenOn (PortNumber 9900) >>= acceptConnections
acceptConnections sock = do
putStrLn $ "trying to accept" ++ (show sock)-- debug msg
conn@(h,host,port) <- accept sock
print conn -- debug msg
forkIO $ catch (talk conn `finally` hClose h) (\e -> print e)
acceptConnections sock
talk conn@(h,_,_) = hGetLine h >>= hPutStrLn h >> hFlush h >> talk conn
我在win7上运行程序,看起来socket创建成功了,但是我不能telnet,而且netstat没有显示任何正在监听的socket,有什么问题吗?或者,haskell在windows上有bug? (顺便说一句,使用此代码在 debian 上完美运行)