home *** CD-ROM | disk | FTP | other *** search
/ ANews 1 / AnewsCD01.iso / Internet / FTP / AmFTP / Rexx / receive.rexx < prev    next >
OS/2 REXX Batch file  |  1999-08-11  |  2KB  |  79 lines

  1. /*
  2.  
  3. AmFTP Rexx-Port Example Script, receive.rexx
  4.  
  5. Copyright © 1995-1996 by Mathias Mischler, All Rights Reserved.
  6.  
  7.  
  8. This easy example script connects to a host (ftp.vapor.com) and
  9. simply gets a file (AmFTP153.lzx) from a directory (support/amftp).
  10. Afterwards connection is closed and AmFTP quits.
  11.  
  12. This script was written to show the use of the AmFTP Rexx Port,
  13. because the is a major AmFTP-Rexx problem: AmFTP is a asyncronious
  14. program, so we _can't_ just start a command and than next one.
  15.  
  16. Solution: What we have to do, is to _initiate_ a command, wait until
  17. command is ready and than initiate next one (wait for this...).
  18.  
  19. AmFTP provides following functions to easy handle this:
  20.  
  21. INACTION:
  22. INACTION returns 0 when AmFTP is free to get new commands.
  23.          returns 1 when AmFTP is busy on working.
  24.  
  25. WAITACTION PORT:
  26. WAITACTION tells AmFTP to send a message to a specified MessagePort
  27. when it is ready with last command. So you can just do a WAITPKT.
  28. This example shows how to wait on such messages. We need to open
  29. rexxsupport.library to use 
  30. OPENPORT to create a MessagePort,
  31. CLOSEPORT to close a MessagePort and
  32. WAITPKT to wait for a message from AmFTP.
  33. (See also rexx.guide OPENPORT, CLOSEPORT, WAITPKT)
  34.  
  35. */
  36.  
  37. /* Open rexxsupport.library, and AMFTP Rexx-Port */
  38. OPTIONS RESULTS
  39. ADDLIB("rexxsupport.library",0,-30,0)
  40. RXLIB "AMFTP.1"
  41. ADDRESS 'AMFTP.1'
  42.  
  43. /* Create MessagePort */
  44. CALL OPENPORT("AMFTP-RESULT.1")
  45.  
  46. /* Change local directory */
  47. say "Change local directory..."
  48. CHANGELOCALDIR "ram:"
  49.  
  50. ISCONNECTED
  51. say result
  52.  
  53. /* Connect to host */
  54. say "Connect..."
  55. CONNECTHOST "ftp.vapor.com"
  56. WAITACTION "AMFTP-RESULT.1"
  57. CALL WAITPKT "AMFTP-RESULT.1"
  58.  
  59. /* Change remote directory */
  60. say "Change remote directory..."
  61. CHANGEDIR "support/AmFTP"
  62. WAITACTION "AMFTP-RESULT.1"
  63. CALL WAITPKT "AMFTP-RESULT.1"
  64.  
  65. /* Receive a file */
  66. say "Receive AmFTP153.lha..."
  67. RECEIVE "AmFTP153.lha"
  68. WAITACTION "AMFTP-RESULT.1"
  69. CALL WAITPKT "AMFTP-RESULT.1"
  70.  
  71. /* Close Connection */
  72. CLOSE
  73.  
  74. /* Quit AmFTP */
  75. QUIT
  76.  
  77. /* Close our MessagePort */
  78. CALL CLOSEPORT "AMFTP-RESULT.1"
  79.