4

snap-serverのhttpServe方法setPort 0を使用して、次の空きポートに接続するようにサーバーに指示できます。残念ながら、httpサーバーを起動すると、実際に起動したポートを特定する方法が見つかりません。例として、私の最初の試みはポート2679で開始しました-その番号を決定する方法はありますか?

4

2 に答える 2

3

0.9以降に含まれているこのパッチsnap-serverを作成しました。これを使用して次のように記述できます。

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 に答える