- 论坛徽章:
- 0
|
回复 2# zhlong8
好的,版主,我最近在尝试用AnyEvent+IO::Socket写支持多客户段连接,模仿select,但是一直没成功,你帮我看下吧。谢谢了。
#!/usr/bin/perl -w
use IO::Socket;
use AnyEvent;
my $socket=IO::Socket::INET->new(
LocalAddr=>"127.0.0.1",
LocalPort=>"9000",
Type=>SOCK_STREAM,
Proto=>'tcp',
Listen=>20,
Blocking=>0
) or die " socket can not create $@";
$socket->autoflush(1);
my $cv=AnyEvent->condvar;
my $wait=AnyEvent->io(
fh=> $socket,
poll=>"r",
cb=>sub {
$cv->begin;
$new=$socket->accept;
while(<$new>)
{
print $_;
}
close($new);
$cv->end;
}
);
$cv->recv;
1. 发现只有一个客户可以连接,然后发送消息,其他客户不行。怎样才能保证这个服务就像服务端一样,一直在监听中?
2. 怎样保证多个客户可以同时连接,然后发送消息呢? |
|