1

私のコードは次のようなものです:

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)

サーバーに接続できない場合、2 秒のタイムアウトが予想されますが、機能しません。代わりに、接続失敗の例外をスローして、プログラムを終了します。

この状況にどう対処すれば、やめられないでしょうか?

4

1 に答える 1

1

サーバーから明確な回答が得られたため、「接続が拒否されました」というメッセージが表示されました。タイムアウトは、応答がまったくない場合のためのものです。

于 2013-02-26T22:32:54.670 に答える