免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2245 | 回复: 5
打印 上一主题 下一主题

新手学习POE遇到问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-05 13:37 |只看该作者 |倒序浏览
代码遇下:
  1. BEGIN {
  2.   @INC = (@INC,'C:\Perl\site\lib','C:\Perl\lib');
  3. }

  4. use warnings;
  5. use strict;
  6. use POE;
  7. use POE::Wheel::SocketFactory;
  8. use POE::Wheel::ReadWrite;

  9. POE::Session->create(
  10.         inline_states => {
  11.           _start => \&start,
  12.           connected => \&connected,
  13.           flushed => \&flushed,
  14.     }
  15. );

  16. POE::Kernel->run;

  17. sub start {
  18.   print "_start\n"; #用于调试
  19.   $wheel = POE::Wheel::SocketFactory->new(
  20.     RemoteAddress => '192.168.1.234',
  21.         RemotePort => 2012,
  22.         SuccessEvent => "connected",
  23.         FailureEvent => "flushed",
  24.   );
  25. }

  26. sub connected {
  27.   print "connected\n";
  28.   my ($kernel,$heap,$socket) = @_[KERNEL,HEAP,ARG0];
  29.   my $wheel = POE::Wheel::ReadWrite->new(
  30.     Handle => $socket,
  31.         FlushedEvent => 'flushed',
  32.   );
  33.   $heap->{wheel} = $wheel;
  34.   $wheel->put("up_sql"); #远程服务器得到字符串
  35. }

  36. sub flushed {
  37.   print "flushed\n";
  38.   delete $_[HEAP]->{wheel};
  39. }
复制代码
start 事件没有创建 $wheel? 不知道为什么

我用telnet 192.168.1.234 2012可以telnet上。

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
2 [报告]
发表于 2012-05-05 15:59 |只看该作者
本帖最后由 rubyish 于 2012-05-05 11:59 编辑

my
.....

论坛徽章:
0
3 [报告]
发表于 2012-05-05 16:26 |只看该作者
回复 2# rubyish


    麻意思 ?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2012-05-05 19:23 |只看该作者
Wheel 创建完之后,必须持有它才行。

改成 $_[HEAP]->{wheel} = .............. 就可以了。

论坛徽章:
0
5 [报告]
发表于 2013-04-27 14:23 |只看该作者
sub start {
  print "_start\n"; #用于调试
  $wheel = POE::Wheel::SocketFactory->new(
    RemoteAddress => '192.168.1.234',
        RemotePort => 2012,
        SuccessEvent => "connected",
        FailureEvent => "flushed",
  );
   $_[HEAP]->{wheel}=$wheel; # add this line
}

论坛徽章:
0
6 [报告]
发表于 2013-04-28 10:36 |只看该作者
好久没看POE了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP