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

ZJI全新上架香港站群服务器,4C段238个IP月付1400元起

ZJI本月新上线了香港葵湾机房站群服务器,提供4个C段238个IPv4,支持使用8折优惠码,优惠后最低每月1400元起。ZJI是原Wordpress圈知名主机商家:维翔主机,成立于2011年,2018年9月更名为ZJI,提供中国香港、台湾、日本、美国独立服务器(自营/数据中心直营)租用及VDS、虚拟主机空间、域名注册等业务,所选数据中心均为国内普遍访问速度不错的机房。葵湾二型(4C站群)CPU:I...

3元/首月香港便宜vps究竟是什么货。

便宜的香港vps多少钱?现在国外VPS主机的价格已经很便宜了,美国VPS主机最低一个月只要十几元,但同样免备案的香港VPS价格贵不贵呢?或者说便宜的香港VPS多少钱?香港vps主机价格要比美国机房的贵一些,但比国内的又便宜不少,所以目前情况是同等配置下,美国VPS比香港的便宜,香港VPS比国内(指大陆地区)的便宜。目前,最便宜香港vps低至3元/首月、18元/月起,今天云服务器网(www.yunt...

妮妮云36元,美国VPS洛杉矶 8核 8G 36元/月,香港葵湾 8核 8G

妮妮云的来历妮妮云是 789 陈总 张总 三方共同投资建立的网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑妮妮云的市场定位妮妮云主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。妮妮云的售后保证妮妮云退款 通过于合作商的友好协商,云服务器提供2天内全额退款,超过2天不退款 物...

ftp服务器地址为你推荐
秦殇内存修改器秦殇poq.exe文件怎么修改啊非主流桌面背景图片大家都哪里找的那么个性的电脑壁纸,美国10次啦导航美国GPS导航卫星浏览器哪个好目前什么浏览器最好用?聚酯纤维和棉哪个好纯棉和聚酯纤维的最佳比例集成显卡和独立显卡哪个好独立显卡和集成显卡区别??江门旅游景点哪个好玩的地方江门有那个地方好玩呢等额本息等额本金哪个好等额本息和等额本金哪个好?核芯显卡与独立显卡哪个好独立显卡和核芯显卡有什么区别尼康和佳能单反哪个好佳能和尼康哪个好
域名备案只选云聚达 电信测速器 高防dns 云网数据 evssl证书 patcha 免费静态空间 52测评网 智能骨干网 空间技术网 双线空间 国外网页代理 tracker服务器 webmin comodo 遨游论坛 跟踪路由 let cc攻击 赵荣 更多