ftp程序的设计 第2页

ftp程序的设计 第2页|网络概论课程设计报告|报告
FTP核心程序
 switch(cmdbuf[0])
  {
  case 'c':
   {
    memset(cmdbuf,0,20);
    recv(AcceptSocket, cmdbuf, 20, 0);
    Sleep(5);
    chdir(cmdbuf);
    closesocket(AcceptSocket);
   }
   break;
  case 'd':
   { 
    
    bWorking = finder.FindFile("*.*");
    while (bWorking)
    {
     
     bWorking = finder.FindNextFile();
     memset(sendbuf,0,50);    
     
    }closesocket(AcceptSocket);
   }break;
  case 'g':
   {
    FILE *p;
    char buffer[1024];
    memset(buffer,0,1024);
    recv(AcceptSocket,sendbuf,strlen(sendbuf)+1,0);
    p=fopen(sendbuf,"rb");
    if(p==NULL)
    {
     send(AcceptSocket,"1",strlen("1")+1,0);
    }
    else
    {
     send(AcceptSocket,"0",strlen("0")+1,0);
     while(fread(buffer,sizeof(char),sizeof(buffer),p)!=NULL)
     {
      send(AcceptSocket,buffer,sizeof(buffer),0);
     }
    }
    fclose(p);
    closesocket(AcceptSocket);    
   }
    break;
  case 'p':
   {
    FILE *p;
    char buffer[1024];
    memset(buffer,0,1024);
    recv(AcceptSocket,sendbuf,strlen(sendbuf)+1,0);
    p=fopen(sendbuf,"wb");
//    while(recv(AcceptSocket,buffer,sizeof(buffer),0)!=NULL)
//    {
//     fwrite(buffer,sizeof(char),sizeof(buffer),p);
//    }
    while(1)
    {
     int ret;
     ret=recv(AcceptSocket,buffer,sizeof(buffer),0);     
     if(ret==0)
     {
      memset(buffer,0,1024);
      break;
     }
     fwrite(buffer,sizeof(char),sizeof(buffer),p);
    }
    fclose(p);
    closesocket(AcceptSocket);
    cout<<"over";
   }
    break;
  case '?':
   {
    memset(sendbuf,0,50);
  751com.cn
    send(AcceptSocket,sendbuf,strlen(sendbuf)+1,0);
    closesocket(AcceptSocket);

   }break;
  case 'q':break;
  default:
   {
    
    
    cdpath=getcwd(NULL,0);
    end=strlen(cdpath);
    memset(sendbuf,0,50);
    for(int i=begin;i<end;i++)
    {
     
     sendbuf[i-begin]=cdpath[i];
    }
    send(AcceptSocket,sendbuf,strlen(sendbuf)+1,0);
    Sleep(5);
    
    closesocket(AcceptSocket);
   }
   break; 
  }
  ///////////
 }
 
 // No longer need server socket
 closesocket(AcceptSocket);
 closesocket(ListenSocket);
 cout<<"end"<<endl;
 WSACleanup();
 return 0;
}

上一页  [1] [2] [3] 下一页

  • 上一篇文章:
  • 下一篇文章:
  • Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有