gpt4 book ai didi

windows - Perl:如何可移植地保留 TCP 端口(因此会有一个不可用的 URL)

转载 作者:可可西里 更新时间:2023-11-01 02:31:16 26 4
gpt4 key购买 nike

我是 XML-LibXSLT 模块的维护者,其中一项测试需要访问一个不存在的 URL。问题是有人报告说他们的系统上存在该 URL,所以我决定在本地主机上分配一个随机端口,我确定那里不会有 Web 服务。它是这样做的:

# We reserve a random port to make sure the localhost address is not
# valid. See:
#
# https://rt.cpan.org/Ticket/Display.html?id=52422

my $sock = IO::Socket::INET->new(
Proto => 'tcp',
);

my $port = $sock->sockport();

$file = "http://localhost:${port}/allow.xml";

现在,问题是 $port 在 Linux 上已定义且有效(对于保留端口的值),但它似乎在 Windows 上不起作用 - 请参阅此错误报告 - https://rt.cpan.org/Ticket/Display.html?id=71456。我的问题是:如何在 Perl 5 中跨 UNIX、Mac OS X 和 Windows 可移植地保留一个新的、随机的、尚未占用的端口?

问候,

Shlomi 鱼

最佳答案

您应该能够使用端口 0 绑定(bind) 到环回地址(以便为您分配一个端口)。对于奖励积分,您可能想尝试将套接字连接到自身(可能在任何地方都不需要,但应该保证它有一个地址)

关于windows - Perl:如何可移植地保留 TCP 端口(因此会有一个不可用的 URL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7704228/

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