LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1424|回复: 1

Perl Socket编程 服务器端的相关问题 急求

[复制链接]
发表于 2010-8-27 21:54:46 | 显示全部楼层 |阅读模式
server端
#!/usr/bin/perl -w

use IO::Socket::INET;

$sock=IO::Socket::INET->new(
                LocalHost=>'127.0.0.1',
                LocalPort=>8080,
                Proto=>'tcp',
                Listen=>3,
                Reuse=>1
                )
        or die "no socket!\n";

$sock=$sock->accept();

while(my $data=<$sock>){
        print $data;
}

close $sock;

client端
#!/usr/bin/perl -w


use IO::Socket::INET;


$sock=IO::Socket::INET->new("127.0.0.1:8080")
        or die "Error!\n";

while(1){
        $_=<STDIN>;
        if(/bye/){
                close $sock;
                exit;
        }else{
                $sock->print($_);
        }
}

close $sock;

-----------------
问题:
当我在客户端输入bye的时候。服务端也停止工作了。怎么能让服务端继续监听。
发表于 2010-9-21 14:17:24 | 显示全部楼层
要同时处理多个客户端,需要多进程/多线程/多路IO.
如果只是处理单个客户端,同时又不想server退出,应该是把accept放在while里面,同时不要使用exit,
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表