《设计与实现FTP客户端.docx》由会员分享,可在线阅读,更多相关《设计与实现FTP客户端.docx(29页珍藏版)》请在课桌文档上搜索。
1、FTP客户端的设计与实现摘要FTP是Imernel上用来传送文献的协议。它是为了我们可以在InterneI上互相传送文献而制定的文献传送原则,规定了Imernel上文献怎样传送。通过FTP协议,我们就可以跟InIemel上的FTP服务器进行文献的上传或下载。本设计以实现一种简朴易用的FTP客户端为目的,通过度析FTP协议的基本工作原理和FTP於J数据传播原理,研究怎样使用VC+语言对FTP客户端进行设计,用VisualStudio2023设计和实现了FTP客户端时开发。关键词FTP的工作原理;VC+;FTP客户端1绪论1.1 课题背景FTP是互联网上使用最广泛的文献传播协议。在互联网初期曾占据
2、整个互联网通信的三分之一,它处理了在不一样操作系统下处理文献格式的不兼容性。老式方式需要在DOS下输入命令,对于一般顾客是件极困难的事。但有了FTP客户端软件后,只要轻点几下鼠标就可以完毕所有操作。FTP客户端应当包括如下功能:登录,浏览目录,上传和下载。它已成为人们不可缺乏的软件之一。1.2 研究现实状况FTP服务是Internel上最早应用于主机之间进行数据传播的基本服务之一。起初,FTP并不是应用于IP网络上的协议,而是20世纪60-80年代美国国防部组建的ARPANET网络中,用于计算机间的文献传播的协议。FTP服务的一种非常重要B特点是其实现可以独立于平台,也就是说在UNIX、DOS
3、、WindOWS等操作系统中都可以实现FTP0客户端和服务器。尽管目前已经普遍采用方式传送文献,但FTP仍然是跨平台直接传送文献0重要方式。目前市面上可通过正规渠道获得B成熟0FTP软件如SerVer-U、CUteftp、Transmit.FlaShfXP等都是国外开发的,需要注册、付费使用。从其他渠道获取的FTP软件,则存在安全面的问题。国内也很难找到免费、安全的FTP软件。虽然操作系统有自带的FTP软件,但它是基于命令行的,没有友好的顾客操作界面,对顾客的计算机技能规定较高,一般0顾客也不会用,并且不支持断点续传和文献夹的上传、下载等功能。因此,设计与实现一种开源的、适合大众需求0FTP客
4、户端和服务器软件是有必要B,是符合社会发展需要叽1.3 研究措施本设计重要用VC+语言开发FTP客户端软件。根据此前所学的有关知识:包括计算机网络技术,TCP/IP详解等;查阅WindOWS应用程序开发资料,学习VC+语言,FTP通信过程,进而实现FTP软件的功能。2 FTP协议分析2.1 FTP内容简介文献传播协议(FileTranSferPrOtOe01,FTP)RC959是因特网上使用最为广泛B文献传播协议。FTP提供交互式的访问,容许文献具有存取权限(如访问文献必须通过授权和有效指令),并容许顾客指明文献的类型和格式(如指明与否使用ASCll码)。FTP屏蔽了各计算机系统的细节,因而适
5、合于在异构网络/主机间传播文献。当顾客(在Windows操作系统中有同名的!应用程序,可以使用Windows中0“运行”对话框或在DoS命令行状态下运行)启动FTP与TCP/IPB网络主机进行文献传播。实际上要用到两个程序:当地机上的FTP客户程序,它提出传播文献的祈求;运行在远程主机上0FTP服务器程序,它响应顾客祈求并把指定B文献传播到对应时主机上。从主线上说,FTP协议就是在网络中多种不一样的计算机之间按照TCP/IP协议来传播文献。FTP协议采用客户机/服务器(Client/Sever)模式,由FTP客户端程序和FTP服务器端程序构成。使用时,先启动FTP客户端程序与远程主机建立连接,
6、然后向远程主机发出传播命令,远程主机在收到命令后就予以响应,并执行对的的命令。FTP是基于TCP日勺文献传送协议,其传播0可靠性由TCP来保障。在TCP/IP协议族中尚有一种基于UDP0文献传送协议TFTP,它与FTP同属于文献共享协议,即在传播过程中复制整个文献,其特点是:若要传播一种文献,就必须先获得当地的文献副本。若要修改文献,就只能对文献的副本进行修改,然后再将修改后的文献副本传回到原主机网。一般说来,因特网上有两大类FTP文献服务器。一类是所谓的“匿名FTP服务器”,此类服务器的目的是向公众提供文献资源服务,不规定顾客事先在该服务器上进行注册。另一类是非匿名FTP服务器,要进入此类服
7、务之前,顾客必须先向服务器系统管理员申请顾客名和密码,非匿名FTP服务器一般供内部使用或提供征询服务。2.2 FTP工作原理FTP(FileTransferProtocol),是文献传播协议B简称。用于Intemet上B控制文献的双向传播。同步,它也是一种应用程序。顾客可以通过它把自己机器与世界各地所有运行FTP协议的J服务器相连,访问服务器上的资源和信息。FTP协议在TCP/IP协议栈中B位置如表21:表2-1TCP/IP协议栈FTPTELNSMTPDNSTFTPNMP应用层TCPUDP传播层IP互联网络层X25ISDNLANWLANFDDIATM网络接口层当启动FTP从远程计算机拷贝文献时
8、,实际上启动了两个程序:一种当地机器上由JFTP客户端程序,它向FTP服务器提出拷贝文献的祈求。另一种是启动在远程计算机的上0FTP服务器程序,它响应祈求把你指定日勺文献传送到你B计算机中。在经典日勺FTP会话过程中,顾客一般坐在当地主机前进行同远程主机之间的文献传播。为了可以访问远程账户,顾客必须提供顾客标识和密码。在通过了身份验证之后,顾客就可以在当地主机和远程主机之间传播文献了。顾客通过FTP的顾客代理与FTP进行交互。顾客首先需要远程提供主机名或IP地址,以便当地FTP的客户进程可以同远程主机上的JFTP服务器进程建立连接。然后,顾客提供其标识和密码。一旦验证通过,顾客即可在两个系统之
9、间传播文献。FTP使用两个并行BTCP协议来传播文献,一种称为控制连接,另一种称为数据连接。控制连接用来在两台主机之间传播控制信息,如顾客标识、密码、操作远程主机文献目录的命令、发送和取向文献的命令等。而数据连接则真正用来发送文献。FTP的控制和数Umi*juXA-/一mXiu、据连接如图2-1所示。图2-1FTP工作原理示意图当顾客启动一次与远程主机的IFTP会话时,FTP首先建立一种TCP连接到FTP服务器B21号端口。FTP日勺客户端则通过该连接发送顾客标识和密码等,客户端还可以通过该连接发送命令以变化远程系统B目前工作目录。当顾客规定传送文献时,FTP服务器则在其20号端口上建立一种数
10、据连接,FTP在该连接上传送完毕一种文献后会立即断开该连接。假如再一次FTP会话过程中需要传送另一种文献,FTP服务器则会建立另一种连接。在整个FrP会话过程中,控制连接是一直保持的,而数据连接则会伴随文献的传播不停时打开和关闭。2.3 FTP工作模式FTP采用C/S(客户端/服务器)模式进行通信,但与其他BC/S模式网络通信协议又有一种很大的区别。一般在进行通信或是TELNET通信的时候,只需要一种端口进行通信。即客户端只需要连接一种端口进行数据通信。如TELNET的默认端口是23,顾客从头到尾都只需使用这个端口。不过FTP通信除了有一种默认端口21之外,还需要其他的端口。其中默认端口(21
11、)重要进行控制连接,进行命令协议和服务器端B响应码H传播;此外一种非原则端口重要进行数据传递,如文献日勺上载、下载等UL至于非原则端口的产生则要根据顾客选择的连接模式而定:假如客户选择的是积极模式(PORT),则需要顾客端提供应服务器一种IP地址和一种非原则端口;而假如顾客采用被动模式(PASV),则服务器端需要提供应客户端一种IP地址和一种非原则端口。下表2-2是几种著名0TCP端口号:表2-2TCP端口号TCP端口号关键字描述20FTP-DATA文献传播协议数据21FTP文献传播协议控制23TELNET远程登录协议25SMTP简朴邮件传播协议53DOMAIN域名服务器80超文本传播协议11
12、0POP3邮局协议119NNTP新闻传送协议控制连接是建立在USER-PIT和SERVER-PI之间用于互换命令与应答日勺通信链路。数据连接是传播数据的全双工连接,传播数据可以发生在服务器DTP和顾客DTP之间也可以发生在两个服务器DTP之间,FrP可以传播非持续的文献,这些文献0一部分称为页。服务器DTP代表一种传播过程,它一般处在“积极”状态,它和侦听端口建立数据连接,它还可认为传播和存储设置参数,并根据PI的指令传播数据。详细工作模式如图22所示:人ALAqAr图2-2FTP工作模式在开始阶段,原则FTP命令由顾客Pl产生并通过控制连接传送到服务器进程。服务器PI向顾客PI返回原则应答。
13、FTP命令指定数据连接参数和文献系统操作。顾客DTP在特定数据端口侦听,服务器开始数据连接并以指定的参数开始数据传播。数据端口不必在开始FTP命令B机器上,但顾客或顾客FTP进程必须确定它在指定B数据端口上侦听.这个数据连接是全双工时。2.4 简朴文献传送协议TCP/IP协议族中尚有简朴文献传播协议,它是一种很小且易于实现的文献传送协议RFC783,RFC1350.虽然TFTP也使用客户机/服务器方式,但它的传播层使用UDP支持,因此TFTP要自己实现纠错功能。TFTP只支持文献传播,而不支持交互,且没有一种庞大的命令集。TFTP没有列目录功能,也不能对顾客进行身份验证。TFTP0重要长处有两
14、个。第一,TFTP可用于UDP环境。例如,当需要将程序或文献同步向许多计算机下载时往往就需要使用TFTP。第二,TFTP代码所占用的内存空间较小。这对存储容量较小日勺计算机或某些特殊用途日勺设备是很重要日勺。这些设备不需要硬盘,只需要固化了TFTP、UDP、和IP的小容量只读存储器即可。3 FTP客户端日勺设计3.1 设计目日勺FTP早已应用在网络日勺各个方面,例如我们在访问网络上0资源时,常常会碰到需要连接FTP服务器来下载,或者你制作了一种网站,想要将其上传至服务器,让大家可以访问它,这个时候就会用到FTP客户端。一般来说,系统需求分析从如下几种方面来简介:顾客需求。软件要简朴上手,可以匿
15、名或者使用帐号登录到顾客指定的服务器上,进行访问和数据的上传和下载。功能需求。该系统重要包括如下几种方面:登录和连接服务器模块;浏览服务器/当地目录和文献模块;上传和下载文献模块。由这三个模块构成该系统。性能需求。整个系统操作应当简便,界面友好,运行稳定,执行速度快。系统自身运行对计算机硬件平台和操作系统平台规定适中。因此本文所设计的IFTP客户端则适合大多数顾客使用,界面设计的很简朴,使顾客可以一目了然,并且具有FTP客户端的基本功能,可以作为下载、上传文献0工具来使用。3.2 开发语言程序中所用到B编程语言就是C+oC+是在C语言的基础上开发的一种通用编程语言,应用广泛。C+支持多种编程范
16、式一一面向对象编程、泛型编程和过程化编程。最新正式原则C+14于2023年8月18日公布。其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大受用的J最强大编程语言之一,支持类:类、封装、重载等口仙C+语言0重要特点表目前两个方面,一是尽量兼容C,二是支持面向对象的措施。它操持了C日勺简洁、高效B靠近汇编语言等特点,对C日勺类型系统进行了改革的扩充,因此C+比C更安全,C+的编译系统能检查出更多的类型错误。此外,由于C语言的广泛使用,因而极大的增进了C+0普及和推广。因此,我选择使用C+语言来实现。3.3 客户端功能模块FTP客户端作为顾客连接FTP服务器0工具,需要具有某些
17、基本功能模块,如登录和连接、浏览当地目录和文献、上传和下载等,其中最重要的三大功能模块如下:登录和连接功能模块:将顾客本机与指定0IP地址连接,验证顾客名和密码,在FTP服务器上进行连接。上传功能模块:顾客可以自行选择本机上存储的文献,上传至FTP服务器。在顾客选择所需要上传的文献,单击文献,然后点击上传,即可将文献上传至服务器。在上传过程中,顾客也可以暂停、继续和删除文献。下载功能模块:连接顾客指定的FTP服务器,获取服务器目录下的文献列表。当顾客选择项目为文献时,单击选定文献,然后选择下载,文献即可下载到指定的文献夹。即顾客可己选择任何自己想要下载0文献,通过FTP客户端进行下载。在下载过
18、程中,顾客也可以暂停、继续和删除文献。有了这三个基本的功能模块,客户端的基本应用功能即可实现。3.4 客户端界面设计为了使顾客可以以便的使用FrP客户端,在设计中将数据输入和信息显示整合在一种页面中,所有客户端仅包括一种重要的窗口,客户端如下图3/所示。窗口中分别有如下四个部分:数据输入部分:用来让顾客输入服务器地址,顾客名,密码。服务器连接部分:点击迅速登录,即可连接服务器。服务器文献信息显示部分:重要用来显示服务器下存储的文献,以便顾客清晰的理解服务器中存储了哪些文献。操作按钮部分:顾客可以通过单击左侧文献,点击上传,然后根据提醒来实现文献上传;顾客可以通过单击右侧文献,点击下载来实现文献
19、下载的详细操作。整个上传下载过程中,顾客可以暂停、继续和删除文献。vWK)I上n I I 柿 下财件#性白量二 XO0MHMdl Nin 大 i*rf*JcbrI.曲.Ek,bjrwr t,CbMdf .bwn*pX Ctg O11 Sd IQ。 W G Cu* Dw Sui v10.Crtr一 0r卜。.OMfcd DEttei,DTlDoMriMdi tjpegI文件大小 I如日富文体宾 文体典 如典 OB XOOM 文献 的 义伸央 3式0 2246 叉球 260 OO KB XW 610 B 义件关 叉件共 义膝 文腔_现_况绸201412M2S 2014n24a 301l1452ft
20、10 201WZ1W51 201 WwICe54 2O121201Q3 2016IagR 2012W-16CeU 加 WM920 29 201W10 2320 201*3812% 201U 34201200 “3B 201UX11W 2013IzaIQa7 2O1M1O655 2012115 1B43 2OT2110 1845 a20 yn 4-I文件大小 I文件a”2O1MW4OOU 2O1MIW4OI13 201W42801 13 2O1WWM2127227 MB 234 NB本 OOKB;2O131J GetCurrentDirectory(csCurDir);if(m_pFtpView
21、!=NULL)m_pFtpView-m_RemoteFiles.m_FtpServer=csServer;m_pFtpView-m_RemoteFiles.m_Port=csPort;m_pFtpView-m_RemoteFiles.m_User=csUser;m_pFtpView-m_RemoteFiles.m_Password=CsPassword;m_csServer=csServer;m_csPassword=CsPassword;m_csUser=csUser;m_nPort=atoi(csPort);m_pFtpView-m_RemoteFiles.m_BaseDir=csCurD
22、ir;m_pFtpView-m_RemoteFiles.DisplayPath(M);SetTimer(1,5000,NULL);)Catch(CInternetExceptior)&e)m_bLoginSucc=FALSE;deletem_pFtp;deletem_pFtp;)4.2.2 文献管理设计文献管理设计重要是完毕文献选择和显示。使顾客根据自己B不一样需要选择不一样B文献夹,进行文献B上传与下载。其重要程序如下:voidCSortListCtrl:OnDblclk(NMHDR*pNMHDR,LRESULT*pResult)intnltem=GetSelectionMarkO;if(n
23、ltem!=-1)if(m_nListType=O)进入当地系统子目录判断与否为目录intnFlag=GetItemData(nItem);if(nFlag=1)(获取完整B目录信息CStringcsFoder=GetItemText(nItem,O);csFoder+=*,;获取目录m_CurDir+=csFoder;DisplayPath(m_CurDir);else进入FTP服务器子目录(判断与否为目录intnFlag=GetItemData(IiItem);if(nFlag=1)(获取完整的目录信息CStringcsFoder=GetItemText(nItem,O);csFoder+
24、=/;获取目录m_CurDir+=csFoder;DisplayPath(m_CurDir);)*pResult=0;4.2.3 文献传播设计该模块重要进行文献的上传与下载。这里重要应用了多线程的断点续传。多线程下载0原理是这样0:一般服务器同步与多种顾客连接,顾客之间共享带宽。假如N个顾客B优先级都相似,那么每个顾客连接到该服务器上的实际带宽就是服务器带宽BN分之一。可以想象,假如顾客数目较多,则每个顾客只能占有可怜的一点带宽。假如你通过多种线程与服务器连接,那么你就可以榨取到较高时带宽了。其重要程序如下:上传文献的线程函数DWORD_stdcallUploadThreadProc(LPVO
25、IDIpParameter)ThreadParam*Param=(ThreadParam*)lpParameter;CMainFrame*pDlg=Param-pDlg;intnltem=Param-nltem;chardownfileMAX_PATH=0;strcpy(downfile,Param-m_DownFile);charrelfileMAX_PATH=0;strcpy(relfile,Param-m_RelativeFile);pDlg-m_pTastViewm_TastList.SetItemText(nItem,4,正在上传);if(Param-nDownFlag=0)/目前选
26、择的是文献pDlg-UpLoadFile(pDlg,downfile,relfile,(DWORD)Param-m_hThread,true,pDlg-m_csServer,pDlg-m_csUser,pDlg-m_csPassword,pDlg-m_nPort);elseif(Param-nDownFlag=1)pDlg-UpLoadFile(pDlg,downfile,relfile,(DWORD)Param-m_hThread,false,pDlg-m_csServer,pDIg-m_csUser,pDIg-m_csPassword,pDlg-m_nPort);if(pDlg-m_dwS
27、top=(DWORD)Param-m-hThread)终止线程后设置初始标识pDlg-m-dwStop=0;pDlg-m_pTastView-m_TastList.SetItemText(nItem,3,完毕);PDlg-m_pTastView-m_TastList.SetItemText(nItem,4,上传完毕);pDlg-DeleteItemFormData(&pDlg-m_pTastView-m_TastListm_hThread);deleteParam;intnCount=pDlg-m_pTastView-m_TastList.GetItemCounl();if(pDlg-m_bT
28、umOff&nCount=0)pDlg-TumOff();关机操作)return0;下载文献的线程函数DWORD_StdcallDownloadThreadProc(LPVOIDIpParameter)ThreadParam*Param=(ThreadParam*)lpParameter;CMainFrame*pDlg=Param-pDlg;intnltem=Param-nltem;chardownfilefMAX_PATH=0;strcpy(downfile,Param-m_DownFile);charrelfileMAX_PATH=0;strcpy(relfile,Param-m-Rela
29、tiveFile);pDlg-m_pTastView-m_TastList.SetItemText(nhem,4,正在下载);if(Param-nDownFlag=0)目前选择B是文献pDlg-DownLoadFile(pDlg,downfile,relfile,(DWORD)Param-m-hThread,true,pDlg-m_csServer,pDlg-m_csUser,pDlg-m_csPassword,pDlg-m_nPort,pDlg-m_csDownDir);elseif(Param-nDownFlag=1)pDlg-DownLoadFile(pDlg,downfile,relf
30、ile,(DWORD)Param-m-hThread,false,pDlg-m_csServer,pDlg-m_csUser,pDlg-m_csPassword,pDlg-m_nPort,pDlg-m_csDownDir);PDIg-m_pTastView-m_TastList.SetItemText(nItem,3,完毕);pDlg-m_pTastView-m_TastList.SetItemText(nltem,4,下载完毕);if(pDlg-m.dwStop=(DWORD)Param-AmJiThread)终止线程后设置初始标识pDlg-m_dwStop=0;)pDlg-DeleteIt
31、emFormData(&pDlg-m_pTastView-m_TastList,(DWORD)Param-m_hThread);intnCount=pDlg-m_pTastView-m_TastList.GetItemCount();deleteParam;if(pDlg-m_bTurnOff&nCount=0)pDlg-TumOff();关机操作returnO;4.2.4 传播控制设计该过程重要实现文献在上传和下载过程中可以暂停、继续和删除的功能。其重要程序如下:voidCTastListView:OnBtStop()intnSel=m_TastList.GetSelectionMark()
32、;if(nSel!=-l)DWORDFiItemData=m_TastList.GetItemData(nSel);CStringcsState=m_TastList.GetItemText(nSel,3);if(csState!=暂停”)SuspendThread(HANDLE)nItemData);m-TastList.SetItemText(nSel,3,*);voidCTastListView:OnBtContinue()intnSel=m_TastList.GetSeIectionMark();if(nSel!=-l)DWORDnltemData=m_TastList.GetItem
33、Data(nSel);CStringcsType=m-TastList.GetItemText(nSel,1);ResumeThread(HANDLE)nItemData);if(csType=下载”)mastList.SetItemText(nSel,3J正在下载);elsem_TastList.SethemText(nSel,3J正在上传);voidCTastListView:IOnBtDeleteO(intnSel=m_TastList.GetSelectionMark();if(nSel!=-1)DWORDnltemData=m_TastList.GetItemData(nSel);C
34、MainFrame*pDlg=(CMainFrame*)AfXGeIMainWnd();pDlg-m_dwStop=nltemData;5功能运行测试在Windows7中启动系统自带FTP服务器的操作过程详细如下:首先打开控制面板,frKM(CO j*Z 值点击系统与安全,再点击管理工具,找到Intemet信息服务(IIS)管理器,如下图5-1所示:*sM2OM427li562009/7/1412412009/7/1415220WW1241MS5C200W71412M1的妨式20W714IMl式J图5/Internet信息服务(IIS)管理器双击打开Imemet信息服务(IIS)管理器,右击网
35、站,再点击添加FTP站点,如下图5-2所示:图5-2添加FTP站点FTP站点添加的详细操作:先输入FTP站点名称,再输入物理途径,接着输入IP地址和身份验证。如下图5-3,图5-4所示:图5-4FTP站点中甲、JIP地址和身份验证为了验证程序与否能正常运行,我选择连接IP为192.168.66.2350FTP服务器来测试。首先是服务器连接B验证:在服务器地址中输192.168.66.235,在顾客名中输入王旭,在密码栏中输入0509,点击迅速登录按钮后,成果如下图5-5所示:Mnn MeaOl wla M MMn w* p Iraat 5MF= | |接下来是上传功能的验证:在左侧/,J当地信
36、息选择自己想要上传信息的磁盘,然后在该磁盘下选择文献,单击文献,点击上传,则文献开始上传。如图5-6,图5-7所示:fTJ 3 B(24VASm0 2QMzrgM2eR e 8k三MMH -1X -二 HE J、-4 J 三y 二懑:yii: yMIa M2SW 盘娱器:s2|2|,2121212121不2121,?|212121; 刈初初刈QM刈刈M刈刈kp9Maallrhm6 5MMnu127”小 t14gn8 8 5n8 8M线纵盟第图5-6文献选择g eMg KME R 2 22 R g 曰 i刈刈沏刈M MM2O1沏刈如2m刈刖刈酬2m初一 一 J J J j J J J J - j
37、 J J Ii JjJ - - JA:H嘉Mt:y :三& 笈史黑:霁!2:sIM2t一2)2)232)2)232)232)2)232)23力z2)2)z)2? KXXCJ1nxx21xx7121刈2O1M 刈刈X1X12D1X1lt1a13 8012)B 3图5-7文献上传最终是下载程序的验证:在服务器文献列表中,选中自己想要下载的文献,选中自己想要下载文献的存储目录,点击下载,文献则开始下载。详细操作如下图5-8,图5-9,图5-10所示:图5-8下载文献存储目录选择FIFWHl 1S21WW2MX*11S3 20AKvisma (SJCn0St.CMV_1 M 30iMiMMUBeolR
38、XMttSCETiyXMB201MMR WAW27tjcmuMyte. 2tm.1.14CM7m?MMI4 MCImM.c* y3*Mlr410B1 S2KY 30M4 47t 227C 2MM9XttXXOOVA a a M MISMB刈 54B1301 2D1OMB1B 20IgMfelg X11OM611O 1S6WOO13 20, MMN813 1W201 13 2015OM4 23Z7 20150( V 31 乂646846rI Il图5-10文献下载在上传和下载过程中进行文献的暂停、继续与删除。如下图511,图5-12,图5/3所示:6健为信gWWiVO(937MB酬,55,”1二
39、.沏 X2MMa*04XI2O15OM0t5233XB 5XN307 MB 4 47 MB 2,32 MMb RhM409 WMB 1 G 2S8KB 00KWSM0 Winwe201555,01 2D1BC61 2059etM 201 乂04 20100013 2O15S681J 2D1 MMSOt IJ 201480 312 20130*20212420第6a2D1SS88” 201SaMe86 20150* ?!)2fc,11ux-owntw、nw.owawo三初约WJ81538Jxnan.uoe4M二nwni.i4cu?rpb*-*IWRI华t三ag*zGGmM0Rra二力址(r殳金女+小勇ZX36JK(K4图5-11下载中暂停*fllSUc二X11MUAMCWB沏,861WNngMRH沏MMnI9JM2nxn&oMMDon2t11W861Xny2iOtu2O144