显示ftp客户端和服务器源代码c语言实现要点

ftp服务器地址  时间:2021-01-30  阅读:()

课程设计 F TP的设计与实现

/*******  *****************/

include<winsock2 h>

#nlue < tdio >

in ude <s  l b h>

#pragma commen (lib,"ws2_32 lib )

#define DFAULT_T 2302

#define DEFAUL_BUFFER    

#defne EFAULMESGE "Th s i  a test o  the erge y \ boadcast  g  ste"

 ar szerveri[128 , //Srer t cnnec   szMe  sage[1 24]  //Messae    nd to severin iPo t = FAULT_ORT;/Port on serer to  nnect to

/WRD dCount =DEALT_CONT /Numbe  of times to se  me  sgeBObSndnly =FASE /S   data ony;don't reeiveint di fun  ;int ge  fun();int putfn();

nt w  n );int cf () int mdfun();int delfun();in usa u );vi usae()

{printf "usag: c   ent [-p:] [-  :IP n:x] [o]  );pr ntf(  -p x Remot po t     d  n");pritf();

rintf );pr  tf(" - Snd ms  ges ny;don't re  ve\n");

ExitProcess(1);

}

oi Val dateAg ( nt arc, car**argv)

{

 t i;fo (i= 1;i<argc; i+

{i  ((argv i][]= '-  ) | | (rv[i] 0]==''))

{

witch (  lw  a gv[i [1])

{cse

 f(s  rl e(a    i])> 3)

Prt=aoi(&arg[i][3] i  (st   n(arg[i )> 3)strcp(   e ver p,&argv[i][]);ca i  (s  rl en(argv[i] >3)

//dwC nt= tol(&argv[i [3]);

abSedOl TREbrakdefau t:u age( ;break;

}

}

}

}int ma n  n a gc

{

WSADATA ws;

C KT Cli t;cha  sBufer[DEFULT_BUFE R];

nt ret;

//usin e nt  ;

//it j struct socaddr_in srerstrc  ostent *hst= NUL;cha  choice[]  choic2[40 ;

//Prse te comman li  ad oad Winok

/a gv 1]="s 127  0  ";strcy(  zServerip,&rv[1][3]);

//Vlidatergs ar , a gv);if(WSAS  artu(KEWD(2 2  &wd)  =0)

pritf("ai  ed to loainsok libra y!\");

 etrn 1;

}

strcpy(  Me  sage, DFULT_MSAGE);

//

/ rea e th ocket, nd atte  o connet to h se  er//

Client= socke  (AFIT,S OC_STREAM IRT O_TCP ;if s  ient =INVALIOC KE)

{

rintf("socet ) faile:%d\n" AG astrror( ;

 eturn  ;

}serer  n_fmil =AFINET;

 erer  inprt=hons(  ort);p ntf(;server s n_add addr=int_ad(s ervri) 

/

/If the supplied  erver address wasn't in th f m

//if(  erver s  _addr s_ddr==INAD_NONE)

ho t= e hostbynae s erv ip);

 f(host==NLL)

{

rintf(;return 1;

CopyMemo  & erver  in_add ,host->_adr  st 0],ho t->h_len h);

}if (con   (sCl  en, (struct sockaddr )srersizef(     r ) == SOET_ERROR)

{pr ntf("onnect ) fa  led %d  ,WSAGe Lastr or ));retur 1;

}

//显示接通信息

//

//

//for(j=0 j<;j++)

//

{ret=rec(slin , szBfer DEFAUTBUFFER,  ;i  ret0) //Grcful clo er un0;

lse if(  et == SOCKET_EOR)

p n f(  rec()  i  d:%\n" WSAtLstEr or( ;r e trn ;

szBuffe  [  t] '\0';pri   ("%s\  ,szBufer);if(ret<1  

{

 et   cv( Client, zuff   DFAULT_UR,0) if(ret =0) // racef  lose

 etur 0e   e if (ret= OCKETERO)

{

/printf("recv() fa   ed:%dn  SGe Las Er or ));retrn  

}szB fer ret '0';

rin  "s\n",szBuffer);

}

/printf("DEAULUFFE=%\  ,DEFA_BUFFE);

}whi l e 1

{puts("------------------------");prin  ("ft>   ;scan ("   ch  ce);if(strcm hic,  i ",3)==0| | tr m(h  ce,"D ,2)=0){dirfun(sClient ;contine

}el se   st ncmp choi c e,"pd",3 =0| |  tr mp(c i ,"PWD" 3)=0{pwdfun s   e );

 ntine;

}e   e if(st ncmp(cho ce,   " )=0)

{u fun( Cliet) 

con iu;

}

l     (st ncm(hi c e,"qu t",4 ==  | st nmp(choie "QUI",2)==0){

reak;

}s nf  ;i f(st ncmp(c i c e,"get",3 =0  |   rncmp(c i c,"GET" 3)==0)

{g  fun(sC  nt,choic );con inue;

}

lse if(strncp(choic,"pt  ,3)==0| | s  ncp(choie "PUT",3 ==)

{put u(sClien ,ch   2 ;cntinue;

e   e if(strncm( oice " ",)==0| | st  cmp(c ice, CD" 2)==)cdfun( Clint,ho c2 co  iue;

}e  s i    trnc( oie,"m",)= | |  trcmp(coi c e, D" 2 =0){mdfun( Cl  en  coie2 ;continue;

}e  se if(str mp(co ce,"del" 3)= | | trncmp(h  e "DL",)==0){delfun sClient choice  cotiue;

   e

uts("输入错误请重新输入 );

flu sh s di);fflsh(s   n) printf "\");pri  f   \n") 

}c ose  c t(sCl  et ;

WSAlanup();retur ;

n d rfun(OCKET sCl  ent)

in re  ;cha  *MG="di  ";char sfer[ ];s  rcpy(sMssage, MG);ret= send( Clint ;if(rt= 0)return  ;e   e if(rt==SCKE_EROR

rintf("send() fa  l :%d\n", WSGetLatErrr()) retun  ;

}

//printf "Se  d    s\n , ret);

//rin f("bSendOnl%d\n",S endOnly);while(!bS endOnly)

/读取流并显示

//  e  = recv(sl  nt, zuffer,8, 0);

//p ntf("%s", zBuffe );

 e  =recv(sC ient, szBuff  ,8, ) if ret ==0 // acefu lsreturn 1 else i  (  et= SOCKTERR)

{prin f "recv ) failed: d\n  SAGetLstError ) ;

 etun 1;

}

 zBffe  [ret = '0';if(  trncp(sBuffer "226 Clse",s  rlen  2  lo e") ==0)

{break;

}prit  ("%s",szBuffr) if strcp(szB fer," 00 S tax e  rr",strlen("500 Snta error"))=){bra;

}

}rtun 0;

}int    un(SOET Client,ha  [0 )

{int rt;

ILE*fr e;car szfer[8];szMes  ae[0]='0' strca (sMessage, "ge  $");

//     t( zMessage, \  );stra sMs  a ,) 

/pitf("G[4]%c\n ,szMes  g [4]);

/sMessag [0]=;

//

/szes  age[4]=;//

//szMessge[8]=;

 e  =  nd(sClient, sMss  , strlen(szMe  sae)+1,0);

 f (  et==0)return 1;

ls if (  et== OCKET_ERR)

{

rintf(   end() fa  le:%d\n", WSAG astr or()) rtu  1 

}print  ("Sen % y es\n , ret) ret= recv sClient, szBufe  , 0,0);

*if ret==0) /Grace ul clsebrak;

lse i  (rt= OCKET_ERROR)

{printf("rec() fi  ed:\n , WSAetLastErr  ());brak

}*/

 zf r[ret = '\0 

  ntf ;i  (st  cmp( suffer,"1 5 Transferin ",s  rlen("  5 T nsfer ng " )=0)

 f( (    e=foe( "w")) == ULL)

{pr n f("opn   rr");

 et n 1;

}pitf  bS enOny=dn ,bS endnly);while !bS endOnl

{

/读取流并显示rt= rcv(sCliet, szBufer,80 0);if(ret=0) // Graeful cl  eretun  ;else if(rt=SOKT_ERRR)

{

rint  ("recv ) fai  ed %d\n",WAGetLastEr or());rturn 1 

szufer[ret ='\0 ;

/printf "% ", zBufer ;i  (   rcp( zBuffer,"22 Transfr  ,st len("22 ansfer  ))==0){b a;

if(   rncp sBuffr,"500 Synta error",s  rlen(" 00 yn ax rror") ==0){bra;

fpritf(fpre,"%s" sBuff );

}print  ("% \n",suffe );

cl    p );

}retrn 0;

int putfn(SOCE sClient,cha  0])

{int  et;//in i;

FILE f  e;/char ;

/char SG="gt\0me txt";car szBufe  [8]   ep_buffe  [0];

/spr n f(szMe   age "et0","  e txt\0  ) sMessage 0 ='0';st  cat(  Me  sage strcat szMssge );ret =sen( Client, zMessage, st   en(szessge)+1,0);

if(ret== retu  0;el  e if (rt= SCKETERROR)

{printf("snd() failed: %d", WetLas Erro() ;retr  ;

}

/prin f("Sen % by es\",  e   ;

// m tx ";pintf("\n",);if  (fpse=fp  ,  r  )) =NULL)

pintf("pen r  r");return  

}e  s

{p  t  ("h fun, eady t trans er\n",);

/i=0wh   (  e t s(tp_bffe r,80,  s e)  N ULL)

{sprintf( zBu    , s",  emp_ufe   ;snd(sClin , sBffer,  ,0);

}

}sprin f(  zuffr "226 Trnsfer cp ete \r\n  ;ret =snd(sC ient, zBu er, strl    zBufr), 0);fclos(fp e r ur 0;

}it pwdun(SOCET sClien)

{int r  ;char MSG="pwd$";chr sBufe  [160];s  rcp(  zMess e,S ;

 t  en sClien ; f(  et=0)rtur 1;

lse  f(rt =SK_ERROR)

{pri  f   send() fa   ed d\n",WSAGtas Error());

 etur 1;

CloudCone(12.95美元/月CN2 GT线路,KVM架构1 Gbps带宽

整理一下CloudCone商家之前推送的闪购VPS云服务器产品,数量有限,活动推出可能很快机器就售罄了,有需要美国便宜VPS云服务器的朋友可以关注一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2017年的美国服务器提供商,国外实力大厂,自己开发的主机系统面板,CloudCone主要销售美国洛杉矶云服务器产品,优势特点是...

ThomasHost(月付5美元)美国/法国/英国/加拿大KVM,支持Windows

ThomasHost域名注册自2012年,部落最早分享始于2016年,还算成立了有几年了,商家提供基于KVM架构的VPS,数据中心包括美国、法国、英国、加拿大和爱尔兰等6个地区机房,VPS主机套餐最低2GB内存起步,支持Windows或者Linux操作系统,1Gbps端口不限制流量。最近商家提供了一个5折优惠码,优惠后最低套餐月付5美元起。下面列出部分套餐配置信息。CPU:1core内存:2GB硬...

轻云互联-618钜惠秒杀,香港CN2大宽带KVM架构云服务器月付22元,美国圣何塞精品云月付19元爆款!海量产品好货超值促销进行中!

官方网站:点击访问青云互联活动官网优惠码:终身88折扣优惠码:WN789-2021香港测试IP:154.196.254美国测试IP:243.164.1活动方案:用户购买任意全区域云服务器月付以上享受免费更换IP服务;限美国区域云服务器凡是购买均可以提交工单定制天机防火墙高防御保护端口以及保护模式;香港区域购买季度、半年付、年付周期均可免费申请额外1IP;使用优惠码购买后续费周期终身同活动价,价格不...

ftp服务器地址为你推荐
国内免备案服务器不知道国内有没有不需要备案的服务器啊莫代尔和纯棉哪个好内裤是莫代尔的好还是棉质的好?理由是什么电视直播软件哪个好电视直播软件哪个好浮动利率和固定利率哪个好对于企业来说固定利率贷款与浮动利率贷款优缺点各是什么?谢谢了。等额本息等额本金哪个好等额本金和等额本息哪个划算?如果想在5-10年内还清贷款哪类更划算一些?手机管家哪个好手机管家和腾讯手机管家哪个好用qq空间登录不上qq空间登不进去 怎么办辽宁联通网上营业厅网辽宁省联通发短信查gprs流量方法dns服务器地址如何知道自己的IP地址和DNS服务器地址?360云盘360云盘和百度云盘哪个更好
云服务器租用 移动服务器租用 vps服务器 抗投诉vps主机 主机测评 187邮箱 国内免备案主机 视频存储服务器 tightvnc 网页背景图片 浙江独立 毫秒英文 空间技术网 流媒体加速 中国电信测速器 百度云加速 免费个人网页 汤博乐 japanese50m咸熟 ncp是什么 更多