ftpc.c
Upload User: xclgwcj
Upload Date: 2007-04-30
Package Size: 6k
Code Size: 3k
Category:

Ftp Server

Development Platform:

DOS

  1. /*
  2. Talk (TCP) example for DSock, copyright (C) 2002 by DM&P.
  3. It's show you how to use sockets to connect to Internet. It's also provide
  4. a Windows version written by WinSock.
  5. */
  6. #include "..dsock.h"
  7. #include <stdio.h>
  8. #include <conio.h>
  9. #define FTP_PORT 21
  10. char  szBuf[32];
  11. BOOL  FtpClient(SOCKET s, char *szServer);
  12. int main(int nArgCnt, char **pszArg)
  13. {
  14.   DWORD   dwIp;
  15.   SOCKET  s;
  16.   printf("nDM&P DSock Talk-TCP Example Programnn");
  17.   /* Open DSock library */
  18.   if(DSock_Open() == FALSE)
  19.   {
  20.     printf("Unable to initialize socket libraryn");
  21.     return 1;
  22.   }
  23.   /* Load network setup from config file */
  24.   DSock_LoadConfigFile("dsock.cfg");
  25.   /* Show my IP */
  26.   dwIp = DSock_GetHostIp();
  27.   inet_ntoa(szBuf, dwIp);
  28.   printf("My IP : %sn", szBuf);
  29.   s = SocketCreate(TCP_SOCKET);
  30.   if(s == INVALID_SOCKET)
  31.   {
  32.     printf("SocketCreate() errorn");
  33.     DSock_Close();
  34.     return 1;
  35.   }
  36.   if(nArgCnt>1)  
  37.      FtpClient(s, pszArg[1]);
  38.   else
  39.  printf("Please Input server IP and Portn");  
  40.   SocketClose(s);
  41.   SocketDestory(s);
  42.   /* Close DSock library */
  43.   DSock_Close();
  44.   return 0;
  45. }
  46. BOOL FtpClient(SOCKET s, char *szServer)
  47. {
  48.   
  49.   char szBuf[1024];
  50.   printf("Talk client mode, connecting to server...n");
  51.   /* Connect to server */
  52.   if(SocketConnect(s, inet_addr(szServer), FTP_PORT) == FALSE)
  53.   {
  54.     printf("SocketConnect() errorn");
  55.     return FALSE;
  56.   }
  57.   if(SocketDataReady(s))
  58.   {
  59.      SocketGetString(s, szBuf, 1024);
  60.      printf("%sn", szBuf);
  61.  printf("Connected to %s:%dn", szServer, FTP_PORT);
  62.   }
  63.   else  return FALSE;
  64.   //SocketPutString(s, "%sn", "user user");
  65.   
  66.   SocketPutString(s, "%sn", "pass dmpr");
  67.   if(SocketDataReady(s))
  68.   {
  69.      SocketGetString(s, szBuf, 1024);
  70.      printf("%sn", szBuf);
  71.   }
  72.   else  return FALSE;
  73.   
  74.   while(TRUE)
  75.   {
  76.     /* Check key press and send it out */
  77.     char c=0;
  78. if(kbhit())
  79.     {
  80.       c = getch();
  81.       switch( c)
  82.   {
  83.   case 27:
  84.       printf("nProgram terminatedn");
  85.           break;
  86.   case 'l':
  87.   case 'L':
  88.           Socket s2;
  89.   SocketPutString(s, "%sn", "list");
  90.   s2 = SocketCreate(TCP_SOCKET);
  91.           SocketConnect(s2, inet_addr(szServer), FTP_PORT);
  92.   while(SocketGetString(s2,szBuf,1024))
  93.       printf("%sn", szBuf);
  94.   SocketClose(s2);
  95.           SocketDestory(s2);
  96.   printf("Send directory endn");
  97.   break;
  98.   case 'S':
  99.   case 's':
  100.   break;
  101.   case 'd':
  102.   case 'D':
  103.   break;
  104.       }
  105.       
  106.     }
  107.     if(c==27)
  108. {
  109. printf("nProgram terminatedn");
  110. break;
  111. }
  112.   }
  113.     
  114.   return TRUE;
  115. }