perl anyevent socket编程(1)-echo clientserver

perl anyevent socket编程(1)-echo clientserver,第1张

概述 本来是测试coro socket server的,结果没搞定,太面了....coro::socket的文档也太简略了. 先看看anyevent的例子吧,这个出自eg中的ae2.pl 我分成了c/s两个 server代码 use warnings;use strict;use Time::HiRes qw(time);use AnyEvent;#这个是ae的perl实现,要比E @H_404_0@ @H_404_0@

 本来是测试coro socket server的,结果没搞定,太面了....coro::socket的文档也太简略了.

先看看anyevent的例子吧,这个出自eg中的ae2.pl

我分成了c/s两个

server代码

use warnings;use strict;use Time::HiRes qw(time);use AnyEvent;#这个是ae的perl实现,要比EV慢一点点use AnyEvent::Impl::Perl;use AnyEvent::Socket;use AnyEvent::Handle;my $CYCLES = 500;my $port   = 11212;#这两个都可以my $cv = AnyEvent->condvar;#my $cv = AE::cv;  tcp_server undef,$port,sub {   my ($fh) = @_      or dIE "tcp_server: $!";   my $hdl = new AnyEvent::Handle fh => $fh;   $hdl->push_read (line => sub {      $hdl->push_write ("$_[1]\n");      undef $hdl;   });};#这两个都可以。。。#$cv->wait;$cv->recv;


clIEnt的代码

use warnings;use strict;use Time::HiRes qw(time);use AnyEvent;use AnyEvent::Impl::Perl;use AnyEvent::Socket;use AnyEvent::Handle;my $CYCLES = 500;my $port   = 11212;my $t = time;for my $connections (1..$CYCLES) {   my $cv = AE::cv;   tcp_connect "127.0.0.1",sub {      my ($fh) = @_         or dIE "tcp_connect: $!";      my $hdl = new AnyEvent::Handle fh => $fh;      $hdl->push_write ("can write $connections\n");      $hdl->push_read (line => sub {      	 my (undef,$line) = @_;      	 print "got line $line.\n";         undef $hdl;         $cv->send;      });   };   $cv->recv;};$t = time - $t;printf "%.3f sec\n",$t;exit;
@H_404_0@ 总结

以上是内存溢出为你收集整理的perl anyevent socket编程(1)-echo client/server全部内容,希望文章能够帮你解决perl anyevent socket编程(1)-echo client/server所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1283024.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存