如何重用 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);
(...)
我正在使用 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);
(...)