适用于'connect'时,Haskell'超时'功能不起作用

时间:2013-02-26 05:09:56

标签: sockets networking haskell tcp

我的代码是这样的:

connectFarEnc ip port = withSocketsDo $ do
  addrinfo <- getAddrInfo (Just (defaultHints {addrFlags = [AI_PASSIVE]})) ip (Just port)
  let addr = head addrinfo          
  sock <- socket (addrFamily addr) Stream defaultProtocol 
  connected <- timeout 2000000 $ connect sock (addrAddress addr)
  print $ show connected
  return (sock, connected)

如果无法连接到服务器,我希望超时两秒,但它不起作用。相反,抛出连接失败的异常,然后退出程序。

我应该如何应对这种情况以避免戒烟?

1 个答案:

答案 0 :(得分:1)

您从服务器得到了明确的答复,这导致拒绝连接#39;超时是指您根本没有回答的时间。