ソースを参照

replace deprecated iNADDR_ANY

master
flavis 4年前
コミット
c6f43b2c96
1個のファイルの変更6行の追加1行の削除
  1. +6
    -1
      src/Skat/AI/Server.hs

+ 6
- 1
src/Skat/AI/Server.hs ファイルの表示

@@ -48,13 +48,18 @@ initServer :: Net.PortNumber -> Buffering -> OnReceive -> IO ServerEnv
initServer port buffermode handler = do initServer port buffermode handler = do
sock <- Net.socket Net.AF_INET Net.Stream 0 sock <- Net.socket Net.AF_INET Net.Stream 0
Net.setSocketOption sock Net.ReuseAddr 1 Net.setSocketOption sock Net.ReuseAddr 1
Net.bind sock (Net.SockAddrInet port Net.iNADDR_ANY)
addr <- Net.addrAddress <$> resolve
Net.bind sock addr
Net.listen sock 5 Net.listen sock 5
chan <- newChan chan <- newChan
forkIO $ forever $ do forkIO $ forever $ do
msg <- readChan chan -- clearing the main channel msg <- readChan chan -- clearing the main channel
return () return ()
return (ServerEnv buffermode sock chan handler) return (ServerEnv buffermode sock chan handler)
where resolve = do
let hints = Net.defaultHints { Net.addrSocketType = Net.Stream }
addrs <- Net.getAddrInfo (Just hints) (Just "127.0.0.1") (Just $ show port)
return $ head addrs


close :: ServerEnv -> IO () close :: ServerEnv -> IO ()
close = Net.close . socket close = Net.close . socket


読み込み中…
キャンセル
保存