如何重用 AWS 套接字?

How to reuse AWS socket?

我正在使用 AWS webserver,它正在被其他脚本轮询。问题是,当我在几秒钟内启动服务器两次时(中间有客户端请求),服务器无法再次启动,说:

raised AWS.NET.SOCKET_ERROR : Bind : [98] Address already in use

this old thread 表明可能有 reuse_address 选项,在 ini 文件中或作为直接参数,但表示这也不起作用。

也许有一些方法可以强制 OS 放弃套接字?

需要调用AWS.Config.Set.Reuse_Address (Config, True);或在the AWS ini file中设置。

例如:

with AWS.Config;
with AWS.Config.Set;
(...)
declare
   HTTP_Server : AWS.Server.HTTP;
   AWS_Config      : AWS.Config.Object := AWS.Config.Default_Config;
begin
   AWS.Config.Set.Reuse_Address (AWS_Config, True);
   AWS.Config.Set.Server_Port (AWS_Config, 80);
   AWS.Server.Start (HTTP_Server, Callback => Respond'Unrestricted_Access, Config => AWS_Config);
(...)