URN Logo
UNIX Resources » Linux » China Linux Forum » Perl 编 程 » 2 » Perl 写Socket服务器的问题请教
announcement 声明: 本页内容为中国Linux论坛的内容镜像,文章的版权以及其他所有的相关权利属于中国Linux论坛和相应文章的作者,如果转载,请注明文章来源及相关版权信息。
Resources
China Linux Forum(finished)
Linux Forum(finished)
FreeBSD China(finished)
linuxforum.net
  业界新闻与评论
  自由软件杂谈
  IT 人生
  Linux软件快递
  翻译作坊
  Linux图书与评论
  GNU Emacs/XEmacs
  Linux 中文环境和中文化
  Linux桌面与办公软件
  Linux 多媒体与娱乐版
  自由之窗Mozilla
  笔记本电脑上的Linux
  Gentoo
  Debian 一族
  网络管理技术
  Linux 安装与入门
  WEB服务器和FTP服务器
  域名服务器和邮件服务器
  Linux防火墙和代理服务器应用
  文件及打印服务器
  技术培训与认证
  Linux内核技术
  Linux 嵌入技术
  Linux设备驱动程序
  Linux 集群技术
  LINUX平台数据库
  系统和网络安全
  CPU 与 编译器
  系统计算研究所专栏
  Linux下的GUI软件开发
  C/C++编程版
  PHP 技 术
  Java&jsp技术
  Shell编程技术
  Perl 编 程
  Python 编 程
  XML/Web Service 技术
  永远的Unix
  FreeBSD世界
   
Perl 写Socket服务器的问题请教
Perl 写Socket服务器的问题请教 - pinkstar [2005-09-10 22:40 | 1,211 byte(s)]
 
 
Re: Perl 写Socket服务器的问题请教 - pinkstar [2005-09-13 16:21 | 1,716 byte(s)]
 
 
Re: Perl 写Socket服务器的问题请教 - pinkstar [2005-09-13 22:01 | 50 byte(s)]
 
Re: Perl 写Socket服务器的问题请教 - passworld [2005-09-11 16:16 | 67 byte(s)]
 
 
Subject: Perl 写Socket服务器的问题请教
Author: pinkstar    Posted: 2005-09-10 22:40    Length: 1,211 byte(s)
[Original] [Print] [Top]
我的代码如下:

my $PORT = 5555;

# set up the socket SERVER, bind and listen ...
my $lsn = new IO::Socket::INET(Listen => 5,
Type => SOCK_STREAM,
Proto => 'tcp',
Reuse => 1,
LocalPort => $PORT);



$SIG{CHLD} = sub {wait()};

my ($child, $pid);
while ($child = $lsn->accept()) {
print "Accepted! ";
$pid = fork;
die "fork: $!" unless defined $pid;
if($pid == 0) {
ServOnClient($child);
$child->shutdown(2);
exit;
}
else {
print "Accepting... ";
}
}
$lsn->close;

我不知道问题出在哪里,这个服务程序只能服务一个Client,然后就自己退出了!可我那个exit明
明是在子进程里的,而父进程是不断while(accept)的。
不懂,请教大虾!!
[Original] [Print] [Top]
Subject: Re: Perl 写Socket服务器的问题请教
Author: passworld    Posted: 2005-09-11 16:16    Length: 67 byte(s)
[Original] [Print] [Top]
难道perl已经混乱到 fork 就可以 fork 了,而不用 fork()吗?
----
[Original] [Print] [Top]
Subject: Re: Perl 写Socket服务器的问题请教
Author: lonelyflyer    Posted: 2005-09-12 11:29    Length: 25 byte(s)
[Original] [Print] [Top]
perl 调用函数可以省掉括号
----
OpenH323 is buggy
ACE is memory greedy
[Original] [Print] [Top]
Subject: Re: Perl 写Socket服务器的问题请教
Author: lonelyflyer    Posted: 2005-09-12 12:08    Length: 46 byte(s)
[Original] [Print] [Top]
删掉这个:
$SIG{CHLD} = sub {wait()};
----
OpenH323 is buggy
ACE is memory greedy
[Original] [Print] [Top]
Subject: Re: Perl 写Socket服务器的问题请教
Author: pinkstar    Posted: 2005-09-13 16:21    Length: 1,716 byte(s)
[Original] [Print] [Top]
我省略掉 $SIG{CHLD} = sub {wait()}; 后的确可以正常运行了
但运行一段时间后用ps aux发现了这些进程
root 2319 0.0 0.7 7124 1832 ? S Sep11 0:00 /usr/bin/perl -w /root/change_psw_srv.pl
root 3373 0.0 0.0 0 0 ? Z Sep11 0:00 [change_psw_srv. <defunct>]
root 3374 0.0 0.0 0 0 ? Z Sep11 0:00 [change_psw_srv. <defunct>]
root 3396 0.0 0.0 0 0 ? Z Sep11 0:00 [change_psw_srv. <defunct>]
root 3471 0.0 0.0 0 0 ? Z Sep11 0:00 [change_psw_srv. <defunct>]
root 3569 0.0 0.0 0 0 ? Z Sep11 0:00 [change_psw_srv. <defunct>]
root 4442 0.0 0.0 0 0 ? Z Sep11 0:00 [change_psw_srv. <defunct>]
root 5336 0.0 0.0 0 0 ? Z Sep12 0:00 [change_psw_srv. <defunct>]
root 22485 0.0 0.0 0 0 ? Z Sep12 0:00 [change_psw_srv. <defunct>]
root 23686 0.0 0.0 0 0 ? Z Sep12 0:00 [change_psw_srv. <defunct>]
root 24431 0.0 0.0 0 0 ? Z Sep12 0:00 [change_psw_srv. <defunct>]
root 24450 0.0 0.0 0 0 ? Z Sep12 0:00 [change_psw_srv. <defunct>]
root 25677 0.0 0.0 0 0 ? Z Sep12 0:00 [change_psw_srv. <defunct>]
是不是就是所谓的僵尸进程?我用那个wait()是抄的别人的,据说wait一下就可以彻底清除child process,但是我wait了后父进程都退了
[Original] [Print] [Top]
Subject: Re: Perl 写Socket服务器的问题请教
Author: lonelyflyer    Posted: 2005-09-13 16:51    Length: 24 byte(s)
[Original] [Print] [Top]
$SIG{'CHLD'} = 'IGNORE';
----
OpenH323 is buggy
ACE is memory greedy
[Original] [Print] [Top]
Subject: Re: Perl 写Socket服务器的问题请教
Author: pinkstar    Posted: 2005-09-13 22:01    Length: 50 byte(s)
[Original] [Print] [Top]
为什么用wait()不行?用IGNORE就可以呢?(的确可以)
[Original] [Print] [Top]
« Previous thread
求教,一个二进制内容对比的问题
Perl 编 程
2
Next thread »
怎么取两数组交集?
     

Copyright © 2007 UNIX Resources Network, All Rights Reserved.      About URN | Privacy & Legal | Help | Contact us
备案序号: 京ICP备05006143    webmaster: webmaster@unixresources.net
This page created on 2008-07-17 04:08:53, cost 0.077656030654907 ms.