亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2373 | 回復(fù): 3
打印 上一主題 下一主題

AnyEvent::Socket判斷連接斷開異常 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-04-17 22:17 |只看該作者 |倒序瀏覽
10可用積分
連接了個python的tcpserver,AnyEvent::Handle在python的tcpserver斷開時在on_error和on_eof都無法知道連接被斷開了,為啥阿?

論壇徽章:
0
2 [報告]
發(fā)表于 2013-04-18 07:56 |只看該作者
貼代碼                  

論壇徽章:
0
3 [報告]
發(fā)表于 2013-04-18 10:13 |只看該作者
與perl的socket沒發(fā)現(xiàn)問題,相同代碼
  1.     tcp_connect $if_ip,$if_port,
  2.         sub {
  3.             my ($sock)=@_;
  4.             unless ($sock) {
  5.                 $interface->{$if_info}=undef;
  6.                 delete $interface->{$if_info};
  7.                 $log->w_log(5,"[conn_interface] Could not connect to interfaceService $if_ip:$if_port");
  8.                 return;
  9.             }
  10.             my $handle;
  11.             eval {
  12.                 $handle = AnyEvent::Handle->new (
  13.                     fh => $sock,
  14.                     on_read => sub {
  15.                         my $buf = delete $_[0]->{rbuf};
  16.                         if (defined($buf)) {
  17.                             push(@{$interface->{$if_info}->{recv_buf}},$buf);
  18.                             &check_recv_buf("interface",$if_info);
  19.                         }
  20.                     },
  21.                     on_eof => sub {
  22.                         $handle->destroy;
  23.                         undef $interface->{$if_info};
  24.                         delete $interface->{$if_info};
  25.                         $log->w_log(5,"[conn_interface] connection eof:$!");
  26.                     },
  27.                     on_error => sub {
  28.                         $handle->destroy;
  29.                         undef $interface->{$if_info};
  30.                         delete $interface->{$if_info};
  31.                         $log->w_log(5,"[conn_interface] connection error");
  32.                     },
  33.                 );
  34.             };
  35.             unless($handle) {
  36.                 $interface->{$if_info}=undef;
  37.                 delete $interface->{$if_info};
  38.                 $log->w_log(5,"[conn_interface] Create AnyEvent::Handle error!");
  39.                 return;
  40.             }
  41.             $interface->{$if_info}->{status}=1;
  42.             $interface->{$if_info}->{sock} = $sock;
  43.         }, sub {
  44.             5
  45.         };
復(fù)制代碼

論壇徽章:
0
4 [報告]
發(fā)表于 2013-04-20 23:17 |只看該作者
你貼的客戶端的代碼中我沒有看到$cv->send,猜測是你服務(wù)器端做$cv->send,但這不符合常理。一般情況下是客戶端做$cv->send,服務(wù)器端會捕捉到on_eof

你說用Perl的服務(wù)器端的話,客戶端就可以捕捉到on_eof,猜測是因為你寫的Perl服務(wù)器端做了$cv->send,這樣客戶端就可以捕捉到on_eof了

ps.建議用push_read和push_write,“delete $_[0]->{rbuf};”并不好,缺乏靈活性,并不適用于項目中,也就是寫簡單例子時候用一下
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP