home *** CD-ROM | disk | FTP | other *** search
/ isnet Internet / Isnet Internet CD.iso / prog / hiz / 09 / 09.exe / adynware.exe / perl / lib / site / Win32 / test-async.pl < prev    next >
Encoding:
Text File  |  1999-12-28  |  3.1 KB  |  111 lines

  1.  
  2. use Win32::Internet;
  3.  
  4. $params{'flags'} = INTERNET_FLAG_ASYNC;
  5. $params{'opentype'} = INTERNET_OPEN_TYPE_DIRECT;
  6. $I = new Win32::Internet(\%params);
  7.  
  8. print "I.handle=", $I->{'handle'}, "\n";
  9.  
  10. $return = $I->SetStatusCallback();
  11. print "SetStatusCallback=$return";
  12. print "ERROR" if $return eq undef;
  13. print "\n";
  14.  
  15. $buffer = $I->QueryOption(INTERNET_OPTION_READ_BUFFER_SIZE);
  16. print "Buffer=$buffer\n";
  17.  
  18. $host = "ftp.activeware.com";
  19. $user = "anonymous";
  20. $pass = "dada\@divinf.it";
  21.  
  22.  
  23. print "Doing FTP()...\n";
  24.  
  25. $handle2 = $I->FTP($FTP, $host, $user, $pass, 21, 1);
  26.  
  27. print "Returned from FTP()...\n";
  28.  
  29. ($n, $t) = $I->Error();
  30.  
  31. if($n == 997) {
  32.   print "Going asynchronous...\n";
  33.   ($status, $info) = $I->GetStatusCallback(1);
  34.   while($status != 100 and $status != 70) {
  35.     if($oldstatus != $status) {
  36.       if($status == 60) {
  37.         $FTP->{'handle'} = $info;
  38.       } elsif($status == 10) {
  39.         print "resolving name...                   \n";
  40.       } elsif($status == 11) {
  41.         print "name resolved...                    \n";
  42.       } elsif($status == 20) {
  43.         print "connecting...                       \n";
  44.       } elsif($status == 21) {
  45.         print "connected...                        \n";
  46.       } elsif($status == 30) {
  47.         print "sending...                          \n";
  48.       } elsif($status == 31) {
  49.         print "$info bytes sent.                   \n";
  50.       } elsif($status == 40) {    
  51.         print "receiving...                        \n";
  52.       } elsif($status == 41) {      
  53.         print "$info bytes received.               \n";
  54.       } else {
  55.         print "status=$status\n";
  56.       }    
  57.     }
  58.     $oldstatus = $status;
  59.     ($status, $info) = $I->GetStatusCallback(1);
  60.   }
  61. } else {
  62.   print "Error=", $I->Error(), "\n";
  63. }
  64. print "FTP.handle=", $FTP->{'handle'}, "\n";
  65. print "STATUS(after FTP)=", $I->GetStatusCallback(1), "\n";
  66.  
  67.  
  68. print "Doing Get()...\n";
  69.  
  70. $file = "/Perl-Win32/perl5.001m/currentBuild/110-i86.zip";
  71.  
  72. $FTP->Get($file, "110-i86.zip", 1, 0, 2);
  73.  
  74. print "Returned from Get()...\n";
  75.  
  76. ($n, $t) = $I->Error();
  77. if($n == 997) {
  78.   print "Going asynchronous...\n";
  79.   $bytes = 0;
  80.   $oldstatus = 0;
  81.   ($status, $info) = $I->GetStatusCallback(2);
  82.   while($status != 100 and $status != 70) {
  83.       if($status == 10) {
  84.         print "resolving name...                   \n";
  85.       } elsif($status == 11) {
  86.         print "name resolved...                    \n";
  87.       } elsif($status == 20) {
  88.         print "connecting...                       \n";
  89.       } elsif($status == 21) {
  90.         print "connected...                        \n";
  91.       } elsif($status == 31) {
  92.         print "$info bytes sent.                   \n";
  93.       } elsif($status == 41) {      
  94.         $bytes = $bytes+$info;
  95.         print "$bytes bytes received.              \n";
  96.       }
  97.     $oldstatus = $status;
  98.     undef $status, $info;
  99.     ($status, $info) = $I->GetStatusCallback(2);
  100.   } 
  101. } else {
  102.   print "Error=[$n] $t\n";
  103. }
  104. print "\n";
  105. ($status, $info) = $I->GetStatusCallback(2);
  106. print "STATUS(after Get)=$status\n";
  107. print "Error=", $I->Error(), "\n";
  108. exit(0);
  109.  
  110.  
  111.