我正在使用文档中概述的循环结构的修改版本运行HTTP::Daemon的本地实例。我已经可以在用户的请求下退出循环,但是我的 Perl 脚本的后续执行给了我错误:
HTTP::Daemon:地址已在使用中...在 /path/to/script 行 NNN,第 3 行传播。
我还必须做些什么才能成为一个好公民并在我的守护进程之后进行清理?
我正在使用文档中概述的循环结构的修改版本运行HTTP::Daemon的本地实例。我已经可以在用户的请求下退出循环,但是我的 Perl 脚本的后续执行给了我错误:
HTTP::Daemon:地址已在使用中...在 /path/to/script 行 NNN,第 3 行传播。
我还必须做些什么才能成为一个好公民并在我的守护进程之后进行清理?
很可能什么都没有。该地址正被前一个实例的剩余连接使用。一旦全部关闭,地址就会自动释放。
如果你想加快这个过程,你可以在绑定之前设置 SO_REUSEADDR 套接字选项。有关详细信息,请参阅PERL 套接字文档。“如果服务器在没有未完成连接的情况下死机,除非您使用 setsockopt() 函数使用选项 SO_REUSEADDR,否则端口将不会立即可重用。”