【发布时间】:2017-09-09 17:48:05
【问题描述】:
我一直在尝试为 Go 客户端编写 Haskell 服务器。对于 Haskell TCP 服务器,我只是使用Network.Socket。每当我尝试运行 hWaitForInput 时,都会收到此错误:
fdReady: fd is too big.
这是服务器代码-
connHandler :: (Socket, SockAddr) -> IO()
connHandler (sock, _) = do
putStrLn "Starting Handler"
handle <- socketToHandle sock ReadWriteMode
hSetBuffering handle LineBuffering
hPutStrLn handle "Hello Client!"
putStrLn "Waiting for Input"
success <- hWaitForInput handle (1000*10)
putStrLn "Wait done"
if success
then do
putStrLn "Client timed out"
else do
msg <- hGetLine handle
putStrLn msg
hClose handle
Go 客户端正在接收并打印服务器的消息(“Hello Client!”),但 Haskell 服务器在打印“Waiting for Input”后立即抛出错误
【问题讨论】: