AC_FTP.TXT
上传用户:tjfeida
上传日期:2013-03-10
资源大小:1917k
文件大小:5k
源码类别:

Ftp客户端

开发平台:

Visual C++

  1. -------------------------------------------------------
  2.  AC_FTP.EXE: file transfer protocol client application 
  3. -------------------------------------------------------
  4. This application is described in detail in Chapter 7, "Sample
  5. Application and Library" in _Windows Sockets Network Programming_  
  6. by Bob Quinn and Dave Shute, published by Addison-Wesley, Reading, MA  
  7. ISBN: 0-201-63372-8
  8. What it does: AC_FTP is a file transfer protocol client
  9.  that uses asynchronous socket operation mode and utilizes many
  10.  programming techniques described in detail throughout the book.
  11.  It connects to an FTP server, sends commands and receives replies
  12.  according to rfc959.txt">RFC 959 to get and put files,
  13.  change directories, get file lists, delete files.
  14. What it illustrates: The source code for AC_FTP illustrates
  15.  many key aspects of WinSock application programming, including
  16.  how to connect as a TCP client and as a server, how to maximize
  17.  data throughput using sockets with asynchronous operation mode.
  18.  It also demonstrates how to receive variable length data on a
  19.  stream connection; this is often a problem since TCP (rfc793.txt">RFC 793
  20.  and rfc1122.txt">RFC 1122) does not preserve packet
  21.  boundaries. It also shows how to implement an application protocol--the
  22.  FTP protocol--using a state machine; maintaining socket state
  23.  is an important aspect of most network applications.
  24. How to Use it: AC_FTP implements a subset of the FTP command
  25.  set, and has buttons in the main dialog box for each of the commands
  26.  available..
  27.   - Start by pressing the "Connect" button, and fill
  28.      in the destination hostname or IP address (the location of the
  29.      FTP server), the user name and password.. Once the "Status"
  30.      in upper right of the AC_FTP application window says "connected,"
  31.      you can press the other buttons to issue FTP commands
  32.   - The "DIR" button in the "Remote Working Directory"
  33.      box.retrieves the remote file directory, and "DIR" in
  34.      the "Local Working Directory" displays the file directory
  35.      from the local disk. AC_FTP puts the file directory list into
  36.      a temporary file called delete.me, and invokes the Windows notepad.exe
  37.      to display it. You can leave several such directory file lists
  38.      open for simultaneos viewing
  39.   - The "CWD" buttons allow you move to different directories
  40.      on the remote or local systems.
  41.   - The "Put" and "Get" buttons send and receive
  42.      files, respectively.
  43.   - You can "Abort" any pending operation, "Close" the control 
  44.      connection, or "Exit" the application at any time.
  45. Known Problems: AC_FTP, as all other the sample applications,
  46.  suffers from a user-hostile interface. User friendliness was sacrificed
  47.  to minimize user interface code, and emphasize the network code.
  48.  The most blatant user-hostile feature is the text in the status
  49.  box that scrolls in the wrong direction. The method of displaying
  50.  the file directories is less than ideal also, but calls for very
  51.  little code. The CWD command does not allow you to move between
  52.  disks on the local system.
  53. File List: 
  54.  AC_FTPAC_FTP.DEF 
  55.  AC_FTPAC_FTP.ICO 
  56.  AC_FTPRESOURCE.H 
  57.  AC_FTPAC_FTP.H 
  58.  AC_FTPAC_FTP.MAK Makefile for 16-bit ac_ftp.exe 
  59.  AC_FTPAC_FTP32.MAK Makefile for 32.bit ac_ftp32.exe 
  60.  AC_FTPAC_FTP.RC 
  61.  AC_FTPFTP_DATA.C all routines for the data connection 
  62.  AC_FTPFTP_CTRL.C all routines for the control connection 
  63.  AC_FTPAC_FTP.C
  64. --------
  65.  NOTES:
  66. --------
  67. We used Microsoft Visual C++ enviroments (versions 1.52 for 16-bit,
  68. and version 2.1 for 32-bit) to create most of the makefiles.
  69. Unfortunately, because the paths are hard-coded in the file, you will
  70. have to bring the project files (.mak) into the respective MS C++
  71. environments to readjust things to the new directory, and even then
  72. you will have to manually alter the project to access the library
  73. files (the are in the root of the directory where you install the
  74. samples).
  75. All samples--including the sample DLL and static library--have a
  76. number of other things in common:
  77.   - They all have 32-bit versions, and all 32-bit version names
  78.      end with "32" (16-bit versions don't have a number).
  79.   - They use the WSAperror() function from #WINSOCKX">WINSOCKX.LIB
  80.     to display error values and short descriptions when an unexpected
  81.     error occurs.
  82.   - They display error messages on any suspicious error condition.
  83.      They don't hide errors, but report them whenever they occur. As
  84.      we describe n a_c.htm">Appendix C: WinSock Error Reference,
  85.      these error messages should appear only when a "user fixable
  86.      error" occurs. If you get an error message from a sample
  87.      application for a non user-fixable error, then this may
  88.      indicate an anomoly in the WinSock implementation that your applications
  89.      may need to deal with. We show you the errors on purpose, to make
  90.      you aware of unexpected conditions.
  91.   - They have a minimal user interface, and do not have help (.HLP)
  92.      files available.
  93.   - They are meant to be played with. They are for exploration
  94.      and experimentation as well as to illustrate how to write WinSock
  95.      applications.
  96. The icons used for each sample don't mean much, but they meet
  97. the following three criteria:
  98.     - They each contain the socket from the official WinSock icon.
  99.     - Each one is colorful in its own unique and wonderful way.
  100.     - Each took under 10 minutes to create.