LinuxSir.Org  
| 网站首页 | 论坛帮助 |

欢迎来到LinuxSir.Org!
您还未登录,请登录后查看论坛,或者点击论坛上方的注册链接注册新账号。


发表新主题 回复
 
主题工具
旧 10-08-27, 21:54 第 1 帖
iwork
 
 
 
注册会员  
  注册日期: Aug 2010
  帖子: 1
  精华: 0
 

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


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的时候。服务端也停止工作了。怎么能让服务端继续监听。
  iwork 当前离线   回复时引用此帖
旧 10-09-21, 14:17 第 2 帖
jacuro 帅哥
 
jacuro 的头像
 
 
注册会员  
  注册日期: Apr 2006
  帖子: 80
  精华: 0
 

要同时处理多个客户端,需要多进程/多线程/多路IO.
如果只是处理单个客户端,同时又不想server退出,应该是把accept放在while里面,同时不要使用exit,
  jacuro 当前离线   回复时引用此帖
发表新主题 回复


主题工具

发帖规则
您 [不可以] 发表新主题
您 [不可以] 回复主题
您 [不可以] 上传附件
您 [不可以] 编辑您的帖子

已 [启用] BB 代码
已 [启用] 表情符号
已 [启用] IMG 代码
已 [禁用] HTML 代码
[论坛跳转…]


所有时间均为[北京时间]。现在的时间是 04:02


Powered by vBulletin 版本 3.6.8
版权所有 ©2000 - 2012, Jelsoft Enterprises Ltd.
官方中文技术支持: vBulletin 中文
版权所有 ©2002 - 2011, LinuxSir.Org