Perl IO :: Socket :: INET

时间:2016-04-14 00:03:42

标签: perl

#!/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);

当我尝试从终端执行此代码时,它可以工作,但是当我尝试从浏览器执行它时,它返回无法绑定等。

有人可以向我解释问题是什么吗?它与我认为的用户权限无关。

1 个答案:

答案 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这样的安全框架而获得某种权限错误。