Perl 解析 HTTP Header
发布时间:2020-12-15 21:08:04 所属栏目:大数据 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #!/usr/bin/perluse Socket;my $proto = getprotobyname('tcp');socket(Server,PF_INET,SOCK_STREAM,$proto) || die "socket: $!";setsockopt(Server,
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 #!/usr/bin/perl use Socket; my $proto = getprotobyname('tcp'); socket(Server,PF_INET,SOCK_STREAM,$proto) || die "socket: $!"; setsockopt(Server,SOL_SOCKET,SO_REUSEADDR,pack("l",1)) || die "setsocketopt: $!"; bind(Server,sockaddr_in(6799,INADDR_ANY)) || die "bind: $!"; listen(Server,SOMAXCONN) || die "listen: $!"; my $paddr; my $waitedpid = 0; sub REAPER { $SIG{CHLD} = &;REAPER; # loathe sysV $waitedpid = wait; } $SIG{CHLD} = &;REAPER; for ($waitedpid = 0; ($paddr=accept(Client,Server)) || $waitedpid; $waitedpid = 0,close Client) { next if $waitedpid; my($port,$iaddr) = sockaddr_in($paddr); my $name = gethostbyaddr($iaddr,AF_INET); print "Connection from: $name"; spawn (sub { while(<CLIENT>) { print $_; } }); } sub spawn { my $coderef=shift; my $pid=fork; if ($pid) { print "begat $pid"; return; # i'm the parent } # else i'm the child -- go spawn open(CLIENT,"<&Client") || die "can't dup client to stdin"; open(CLOUT,">&Client") || die "can't dup client to stdout"; ## open(STDERR,">&STDOUT") || die "can't dup stdout to stderr"; exit &$coderef(); } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |