4

使用 snap-server 的httpServe方法,我可以setPort 0指示服务器连接到下一个空闲端口。不幸的是,一旦我启动了 http 服务器,我就找不到任何方法来确定它实际启动的端口。例如,我的第一次尝试是从 2679 端口开始的——有什么方法可以确定这个数字吗?

4

2 回答 2

3

我编写了这个补丁,包含在snap-server0.9 及更高版本中,您可以使用它编写:

let hook dat = print $ socketPort $ head $ getStartupSockets dat
let config = setStartupHook hook $ setPort 0 mempty
httpServer config ...

现在hook将在服务器准备好后调用,并将打印它启动的端口。

于 2012-05-25T19:50:03.597 回答
0

Config 结构有一堆 getter,不是吗?

getPort :: Config m a -> Maybe Int

返回要监听的端口(对于 http)

于 2012-05-23T14:15:45.250 回答