HTTP ::守护程序和调试错误代码

时间:2015-03-14 15:21:03

标签: linux perl sockets network-programming

如果无法初始化守护程序本身,如何调试错误代码:

my $d = HTTP::Daemon->new(LocalAddr=>$ae::Settings{ip},
                       LocalPort=>$ae::Settings{port},
                       ReuseAddr=>'1') || die "error";

我想要的是更具体的错误代码而不是简单的“死亡”。例如,如果我无法绑定到某些端口,

2 个答案:

答案 0 :(得分:1)

初始化底层套接字时,您可以检查$!(即底层系统调用中的errno)是否存在问题。而不是在HTTP::Daemon::new

内完成创建监听器
HTTP::Daemon->new(...) or die "error: $!"

答案 1 :(得分:0)

如果我不是root用户,而是针对特权(< 1024)端口或已经在使用的更高端口运行此命令:

#!perl
# HTTP_daemon.pl 

use HTTP::Daemon;      
use warnings;      
my $d = HTTP::Daemon->new(LocalAddr=>"127.0.0.1", 
                       LocalPort=>"88",     
                       ReuseAddr=>'1') || die "$!";

我明白了:

Permission denied at HTTP_daemon.pl line 4.

对于与HTTP相关的错误和状态代码,请使用HTTP::Status