gpt4 book ai didi

haskell - 如何在 ghci 中终止套接字服务器?

转载 作者:行者123 更新时间:2023-12-02 18:41:48 25 4
gpt4 key购买 nike

我用 webserver 包编写了一个网络服务器,并且可以在 ghci 中启动它:

:main localhost 8000

如果我Ctrl-C它并再次运行,我得到

*** Exception: bind: resource busy (Address already in use)

所以套接字似乎绑定(bind)到我的 ghci session 。

如何释放该端口绑定(bind),以便可以 :reload 并在不退出 ghci 的情况下再次启动它?

最佳答案

如果底层服务器实现未设置REUSE_ADDR,通常会发生这种情况。套接字上的选项。

通常,如果您突然终止服务器,操作系统会将该服务器的旧端口保持在 2MSL 状态几分钟,以防止该端口上的新服务器意外收到用于先前连接的旧消息。如果您在尝试绑定(bind)端口时设置了REUSE_ADDR,则表示您希望在 2MSL 周期结束之前强制重用它。

解决此问题的唯一方法是在绑定(bind)监听套接字之前修改用于设置 REUSE_ADDR 选项的底层 Web 服务器的代码。

关于haskell - 如何在 ghci 中终止套接字服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15890912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com