球拍未关闭 TCP 端口

Racket not closing TCP port

我用 Racket 编写了一个简单的 HTTP 回显服务器。当我从 DrRacket 中 运行 服务器然后单击停止按钮时,我的程序终止,但正在使用的端口需要很长时间才能关闭。如果我在终止程序后在我的终端中 运行 lsof -i :<port> ,我没有看到任何绑定到该端口的东西,但 DrRacket 不同意并拒绝让我重新启动我的程序,告诉我已经绑定了一些东西到那个港口。

这是 Racket 中的错误,还是我遗漏了什么?

如果您直接使用 tcp-listen(意味着您自己处理所有低级套接字内容,并手动处理 HTTP),则需要使用 reuse? 参数集调用它至 #t.

如果您使用的是 web-server 模块,它已经将 reuse? 设置为 #t,因此它应该已经可以工作了。