显示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;

OneTechCloud(31元),美国CN2 GIA高防VPS月

OneTechCloud发布了本月促销信息,全场VPS主机月付9折,季付8折,优惠后香港VPS月付25.2元起,美国CN2 GIA线路高防VPS月付31.5元起。这是一家2019年成立的国人主机商,提供VPS主机和独立服务器租用,产品数据中心包括美国洛杉矶和中国香港,Cera的机器,VPS基于KVM架构,采用SSD硬盘,其中美国洛杉矶回程CN2 GIA,可选高防。下面列出部分套餐配置信息。美国CN...

极光KVM(限时16元),洛杉矶三网CN2,cera机房,香港cn2

极光KVM创立于2018年,主要经营美国洛杉矶CN2机房、CeRaNetworks机房、中国香港CeraNetworks机房、香港CMI机房等产品。其中,洛杉矶提供CN2 GIA、CN2 GT以及常规BGP直连线路接入。从名字也可以看到,VPS产品全部是基于KVM架构的。极光KVM也有明确的更换IP政策,下单时选择“IP保险计划”多支付10块钱,可以在服务周期内免费更换一次IP,当然也可以不选择,...

香港服务器多少钱一个月?香港云服务器最便宜价格

香港服务器多少钱一个月?香港服务器租用配置价格一个月多少,现在很多中小型企业在建站时都会租用香港服务器,租用香港服务器可以使网站访问更流畅、稳定性更好,安全性会更高等等。香港服务器的租用和其他地区的服务器租用配置元素都是一样的,那么为什么香港服务器那么受欢迎呢,香港云服务器最便宜价格多少钱一个月呢?阿里云轻量应用服务器最便宜的是1核1G峰值带宽30Mbps,24元/月,288元/年。不过我们一般选...

ftp服务器地址为你推荐
莫代尔和纯棉哪个好莫代尔好还是棉好闪迪和金士顿哪个好tf卡闪迪和金士顿哪个更好朱祁钰和朱祁镇哪个好明英宗和明代宗哪个皇帝要做得好英语词典哪个好什么英语词典好?电动牙刷哪个好有人懂电动牙刷吗?飞利浦的好用还是欧乐B好用美国国际东西方大学美国新常春藤大学有哪些?51个人空间登录为什么登陆51博客个人空间就不能登陆QQ考生个人空间登录湖南高等教育自学考试 考生个人空间登录密码忘记了怎么办辽宁联通网上营业厅辽宁联通网上营业厅为什么不能交小灵通的话费?辽宁联通网上营业厅我进入到的中国联通微信营业厅,该如何进入到人工服务啊?
网通服务器租用 美国主机排名 ddos GGC simcentric css样式大全 windows2003iso 新站长网 什么是服务器托管 中国网通测速 国外免费asp空间 metalink 电信主机 便宜空间 dnspod 什么是web服务器 工信部icp备案查询 七牛云存储 网络速度 asp空间 更多