home *** CD-ROM | disk | FTP | other *** search
/ BUG 14 / BUGCD1998_05.ISO / internet / tcp4u / tcp4u330.exe / tcp4u.330 / Samples / Tcp3 / mini_Ftp.c
C/C++ Source or Header  |  1998-03-05  |  3KB  |  82 lines

  1.  
  2. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  3. /*                                                                           */
  4. /*                                                                           */
  5. /*   M i n i _ F t p                                                         */
  6. /*                                                                           */
  7. /*       Sample program for libtcp4u.a                                       */
  8. /* This program establishes a connection with a FTP server (given as         */
  9. /* argument), waits for its incoming string and displays it.                 */
  10. /*                                                                           */
  11. /*                                                                           */
  12. /* Please read file ../build.txt before compiling this sample                */
  13. /*                                                                           */
  14. /*                                                             by Ph. Jounin */
  15. /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  16.  
  17. #include <stdio.h>
  18. #include <tcp4u.h>
  19.  
  20. #define NO_PRIVILEGE (0==1)  /* FALSE */
  21.  
  22. char szBuf[10240];
  23.  
  24. /* ------------------------------------------------------ */
  25. /* A dialogue -> Sends commands then waits for its answer */
  26. /* exits on error                                         */
  27. /* ------------------------------------------------------ */
  28. void FtpDialogue (SOCKET FtpSock, const char *szCmd)
  29. {
  30. int Rc;
  31.   if (szCmd!=NULL) 
  32.   {
  33.      printf  (" --> %s\n", szCmd);
  34.      Rc=TnSend (FtpSock, szCmd, NO_PRIVILEGE, HFILE_ERROR);
  35.      if (Rc!=TCP4U_SUCCESS)
  36.      {
  37.         printf ("Send: error %d: <%s>\n", Rc, Tcp4uErrorString (Rc));
  38.         exit(0);
  39.      }
  40.   }
  41.   Rc = TnGetAnswerCode (FtpSock, szBuf, sizeof szBuf, 30, HFILE_ERROR);
  42.   if (Rc<100)
  43.   {
  44.     printf ("Recv: error %d: <%s>\n", Rc, Tcp4uErrorString (Rc));
  45.     exit(0);
  46.   }  /* Recv Error */
  47.   else   puts (szBuf);
  48. } /* FtpDialogue */
  49.  
  50.  
  51. /* ------------------------------------------------------ */
  52. /* Main: Establish connection to an FTP server and talk a */
  53. /* while with it                                          */
  54. /* ------------------------------------------------------ */
  55. int main (int argc, char *argv[])
  56. {
  57. int    Rc;
  58. SOCKET FtpSock;
  59. char szVer [128];
  60.  
  61.   Tcp4uVer (szVer, sizeof szVer);
  62.   printf ("Using %s\n", szVer);
  63.  
  64.    Tcp4uInit();
  65.    if (argc!=2)  { puts ("Usage: mini_Ftp <serveur>\n"); exit(0); }
  66.    Rc = TcpConnect (&FtpSock, argv[1], "ftp", NULL);
  67.    if (Rc!=TCP4U_SUCCESS)
  68.    {
  69.      printf ("Connect: error %d: <%s>\n", Rc, Tcp4uErrorString (Rc));
  70.      exit(0);
  71.    } /* Connect Error */
  72.    FtpDialogue (FtpSock, NULL);
  73.    FtpDialogue (FtpSock, "HELP");
  74.    FtpDialogue (FtpSock, "QUIT");
  75.    TcpClose (&FtpSock);
  76.    Tcp4uCleanup();
  77. return 0;
  78. } /* main */
  79.  
  80.  
  81.  
  82.