0

次のコードが与えられた場合

(@<) :: Port -> IO Socket
(@<) p = do -- listen
#if !defined(IPV4ONLY)
  s <- socket AF_INET6 Stream 0 =>> opt
  setSocketOption s IPv6Only  0 // try_
  bindSocket      s $ SockAddrInet6 p 0 iN6ADDR_ANY 0
#else
  s <- socket AF_INET  Stream 0 =>> opt              -- Windows XP does not have
  setSocketOption s $ SockAddrInet  p   iNADDR_ANY   -- a dual-stack sockets API
#endif
  listen          s maxListenQueue
  print $ Service Listen p
  return s
    where opt s = mapM_ (\o -> setSocketOption s o 1) [ ReuseAddr, KeepAlive ]

設定(cabal config)時の最もクリーンで最短の方法は何ですか:

  1. Windows のバージョンを確認する
  2. IPV4ONLYWindows XP (またはそれ以前?) でコンパイルするかどうかを定義する

これを行うには、カバールのみの方法が推奨されます。チェックが小さすぎて、本格的な構成スクリプトを作成できないと思います

4

0 に答える 0