weidagang2046的專欄

          物格而后知致
          隨筆 - 8, 文章 - 409, 評論 - 101, 引用 - 0
          數據加載中……

          ping子網內各主機的并發實現

          ???? sub ?ping_a_host?{
          ??????
          my ? $host ? = ? shift ;
          ??????`ping?
          - i? 1 ? - c? 1 ? $host ? 2 >/ dev / null`? =~ ? / 0 ?packets?rec / ? ? ? 0 ? : ? 1 ;
          ????}

          ????
          my ? %pid_to_host ;
          ????
          my ? %host_result ;

          ????
          sub ?wait_for_a_kid?{
          ??????
          my ? $pid ? = ? wait ;
          ??????
          return ? 0 ? if ? $pid ? < ? 0 ;
          ??????
          my ? $host ? = ? delete ? $pid_to_host { $pid }
          ????????or?
          warn ( " Why?did?I?see?$pid?($?)\n " ) , ? next ;
          ??????
          warn ? " reaping?$pid?for?$host\n " ;
          ??????
          $host_result { $host }? = ?$ ? ? ? ? 0 ? : ? 1 ;
          ??????
          1 ;
          ????}

          ????
          my ? @hosts ? = ? map ? " 10.0.1.$_ " , ? " 001 " .. " 254 " ;

          ????
          for ?( @hosts )?{
          ??????wait_for_a_kid()?
          if ? keys ? %pid_to_host ? > ? 10 ;
          ??????
          if ?( my ? $pid ? = ? fork )?{
          ????????
          # #?parent?does
          ???????? $pid_to_host { $pid }? = ? $_ ;
          ????????
          warn ? " $pid?is?processing?$_\n " ;
          ??????}?
          else ?{? # ?child?does
          ????????##?child?does

          ???????? exit ? ! ping_a_host( $_ );
          ??????}
          ????}

          ????
          # #?final?reap:
          ???? 1 ? while ?wait_for_a_kid();

          ????
          for ?( sort ? keys ? %host_result )?{
          ??????
          print ? " $_?is? " , ?( $host_result { $_ }? ? ? " good " ? : ? " bad " ) , ? " \n " ;
          ????}

          from: http://www.perlchina.org/archive/archive.php?action=archive&page=44

          posted on 2006-05-21 20:29 weidagang2046 閱讀(550) 評論(0)  編輯  收藏 所屬分類: Perl

          主站蜘蛛池模板: 大同县| 荔波县| 广汉市| 冀州市| 城口县| 本溪市| 德庆县| 林州市| 南江县| 隆安县| 思茅市| 庄浪县| 吴忠市| 安宁市| 揭西县| 鹤山市| 胶州市| 永春县| 通州市| 化德县| 蓝田县| 平邑县| 平顺县| 嘉峪关市| 西峡县| 呼伦贝尔市| 时尚| 绥阳县| 高碑店市| 邻水| 朝阳市| 吴川市| 瓮安县| 山西省| 大余县| 永州市| 西畴县| 元阳县| 通江县| 资源县| 万山特区|