anyevent::socket+anyevent::client 测试客户端
来源:互联网 发布:c 可视化编程 编辑:程序博客网 时间:2024/05/18 01:06
这个就是加上了timer.实现了收发2次中间的延时.
同时,加强了解了cv->recv,cv->begin,$cv->end的认识
#!/bin/env perl#aec3.pl(ok)#加上时延,实现了乱序#收发2次use warnings;use strict;use Time::HiRes qw(time);use AnyEvent;use AnyEvent::Impl::Perl;use AnyEvent::Socket;use AnyEvent::Handle;my $CYCLES = 3;my $port = 11212;my $t = time;#my $cv = AnyEvent->condvar; #这两个等效my $cv = AE::cv;for my $connections (1..$CYCLES) { $cv->begin; #开启事务. and条件. send是or条件 tcp_connect "127.0.0.1", $port, sub { my ($fh) = @_ or die "tcp_connect: $!"; my $hdl = new AnyEvent::Handle fh => $fh; $hdl->push_write ("1write $connections\n"); $hdl->push_read (line => sub { my (undef, $line) = @_; print "got 1line $line.\n"; my $w;$w = AnyEvent->timer (after => 0.25, cb => sub { #必须先定义$w warn "timeout\n"; $hdl->push_write ("2write $connections\n"); $hdl->push_read (line => sub { my (undef, $line) = @_; print "got 2line $line.\n"; undef $hdl; #$cv->send; #一次连接交互完成,结束tcp_connect, $cv->end; #一次连接交互完成,结束tcp_connect, }); }); undef $W; #undef $hdl; #$cv->send; }); }; #$cv->recv; #不应在此recv,否则就变成循环而非并发了}; $cv->recv;$t = time - $t;printf "%.3f sec\n", $t;exit;
- anyevent::socket+anyevent::client 测试客户端
- anyevent::socket+coro::handle client编程(测试客户端)
- anyevent::socket+anyevent::handle server编程 (echo server改造 + 测试server)
- perl anyevent socket编程(1)-echo client/server
- perl AnyEvent
- Anyevent学习之一:Anyevent::HTTP
- Anyevent::socket和Coro::Handle组合,echo server(完结)
- Anyevent::SNMP实例
- anyevent::snmp+coro
- AnyEvent::HTTP 介绍
- perl 安装AnyEvent::HTTP
- AnyEvent::HTTP 实现异步请求
- AnyEvent学习之2 -并行ping
- anyevent::snmp(2) 扫描地址段
- anyevent::snmp(3)使用ae::delay实现并行+顺序请求
- Android-socket-client 客户端实现
- Android-socket-client客户端<2>
- 软件测试之客户端(Client)测试
- UVA 10494 (13.08.02)
- 第五章 运算符与表达式
- 剑指Offer算法实现之六:重建二叉树
- D - Mysterious Present
- andriod 开发环境的搭建
- anyevent::socket+anyevent::client 测试客户端
- Socket代理转发小记
- E - Triangle
- C语言函数指针基础
- hdu 4619
- LA 3708 - Graveyard 墓地雕塑
- POJ 3348 Cows 凸包+求多边形面积
- SQL Server MySQL Oracle
- 懂点经济学