#!/usr/bin/perl
use warnings; use strict;
use IO::Socket::INET;
our $local_host = "0.0.0.0";
our $local_port = "14267";
$SIG{'CHLD'} = 'IGNORE';
my $bind = IO::Socket::INET->new(
Listen=>5,
LocalAddr=>$local_host.':'.$local_port,
ReuseAddr=>1)
or die print('Could not bind: ' .$local_host.':'.$local_port);
当我尝试从终端执行此代码时,它可以工作,但是当我尝试从浏览器执行它时,它返回无法绑定等。
有人可以向我解释问题是什么吗?它与我认为的用户权限无关。
答案 0 :(得分:2)
你怎么可能知道它无法绑定?你总是记录"无法绑定"无论发生什么错误!更重要的是,您没有记录发生的错误!第一步是纠正这一点。
#!/usr/bin/perl
use warnings; use strict;
use IO::Socket::INET;
my $local_port = 14267;
my $server_socket = IO::Socket::INET->new(
LocalPort => $local_port,
Listen => 5,
ReuseAddr => 1,
)
or die("Can't create server socket: $@"); # <-- The relevant change.
我怀疑你会因为像SElinux这样的安全框架而获得某种权限错误。