欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    毕业设计(论文)FTP搜索引擎设计.doc

    • 资源ID:3976587       资源大小:535KB        全文页数:38页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业设计(论文)FTP搜索引擎设计.doc

    摘要随着信息的快速速增长,让搜索引擎成了人们查找信息的首要工具。如今在中文搜索引擎领域,国内搜索引擎已经同国外搜索引擎效果上相差不大了。能形成现在这样的局面,是有一个重要的原因:英文和中文两种语言自身的书写方式不相同,其中在计算机涉及的技术就是中文分词技术。本设计的主要目的是利用爬虫获取的网页,将网页的内容按照一定的分词技术,拆分成一项项的词条,并存储到本地,供后期检索使用。系统中的分词算法采用基于分词词典的机械分词方法,这种方法是按照正向最大匹配的方法将要分析的中文句子与字典中的词条进行匹配,从而把中文句子拆分成一个个词。通过使用该分词软件可以自动的把中文句子比较准确的拆分成词,并且拆分速度快。结合正向最大匹配法和逆向最大匹配法也能把句子比较正确的分成需要的一个个词条。关键词:中文分词;词典;AbstractWith the rapid growth of information, search engines become the preferred tool for finding information. Chinese search engine in the field, domestic and foreign search engine has been the effect on the search engine to be close. Is able to develop this kind of situation, there is one important reason for this is that both Chinese and English language to write their own different ways, including the computer technology is the Chinese word segmentation technology.This design is the realization of a Chinese-term components. Through the Chinese word segmentation, and analysis of the Chinese sentence, will be split into its term. And its application in search engines so that the realization of the Chinese search engine search. System of the algorithm using the word dictionary based on the mechanical-term approach, which is in accordance with the largest positive match will be the strategy of the Chinese phrases and terms in the dictionary to match, then split into the Chinese word sentence.Through the use of the term of the sub-components of the Chinese sentences can be automatically split into precise words, split fast. With the forward maximum matchmethodand the reverse maximum matching methodcan also put the sentences into one and one right entry.Keywords:Chinese word segmentation;dictionary目录前言11FTP搜索引擎爬虫模块介绍21.1设计思路21.2设计步骤21.2.1扫描站点21.2.2获取数据21.2.3数据分类21.2.4生成源文件31.2.5生成站点列表31.2.6建立索引文件32FTP搜索引擎概要设计42.1工作原理42.2工作流程图53FTP搜索引爬虫模块擎详细设计63.1设计目的63.2功能模块设计63.2.1网段扫描63.2.2获取数据83.2.3关于编码问题的解决163.2.4服务器兼容173.2.5生成数据文件213.2.6生成站点列表244FTP搜索引擎索引模块详细设计254.1.1格式化数据254.1.2汇总属性文件274.1.3双字母建立索引284.1.4索引数据库304.1.5字符编码315开发环境和结论325.1硬件环境325.2软件环境325.3运行环境325.4运行结果335.5存在的问题和不足33总结34致谢35参考文献36前言本设计主要是研究中文分词技术的实现。通过使用中文分词技术实现一个中文分词软件,把中文的词条切分成有意义的一个一个词,最后可以把切取的词条保存下来,供以后使用。分词技术发展至今,也已经有十几年的历史。目前在中文分词领域,已经有很多成熟的分词技术。中文是由连续文字组成,缺乏有效的间隔,虽然有句、段分隔,但在进行机器语言学习、文本语义理解分析过程中都需以词组为最小单位的。因此实现中文分词相对英语来讲,更加的复杂、困难。这其中对于计算机涉及的技术就是中文分词技术。国内和国外的科研院校,例如北京大学、清华大学、中科院、北京语言学院、等都一直关注并研究中文分词技术。研究中文分词技术的主要目的是服务于搜索引擎。通过使用词典将要分析的中文语句与词典中的词条进行匹配来提高分词速度。通过使用正向最大匹配法提高分词的准确度。将该分词器应用到搜索引擎中不但可以实现对中文的搜索,提高搜索信息的功能,还可以对中文进行分词,提高搜索精度。也可惜应用到其它领域,使得计算机能快速准确的处理中文信息。1 中文分词概述随着搜索引擎的发展,分词技术也是运用而生。在早期搜索引擎一直只是用于对英文的检索,而如今搜索引擎已经运用在各个领域,当然其中也有实现对中文的搜索,而要对中文搜索就必须要使用中文分词技术。1.1 中文分词简介在英文的行文当中,单词与单词之间是以空格符作为自然分界符的,但是中文只是字、句和段能够通过明显的分界符来简单分开,词却没有一个表面上的分界符,虽然英文也同样存在短语的划分问题,但是在词这一层上,中文比之英文要复杂的多、困难的多。这就要求在对中文字段进行分析之前,先要将句子切割成一个个的词的序列,这就是中文分词。1.2 中文分词算法的分类现有的分词算法大致可以分成三类:基于字符串匹配的分词法、基于理解的分词法和基于词频统计的分词法。1.2.1基于字符串匹配的分词方法这种分词方法又叫机械分词法,它是按照一定的方法把需要分析的句段与一个大的机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功,分出那个词。按照扫描方向来区分,又可以分为正向匹配法和逆向匹配法;按照不同长度优先匹配的情况,可以分为最大匹配法和最小匹配法;按照与词性标注过程是否相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:(1)正向最大匹配法;(2)逆向最大匹配法;(3)最少切分法。1.2.2基于理解的分词方法这种分词方法是通过让计算机模拟人对句子意思的理解,来完成识别词的效果。它的基本思想就是在分词的同时进行句法和语义分析,利用句法和语义的信息来排除歧义现象。它通常分为三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统能获取有关的词、句子等的句法以及语义信息用以对分词歧义实现判断,也就是它模拟了人对一个句子的理解过程。这种分词方法需要充足的语言知识和信息。但是由于汉语语言知识的笼统性和复杂性,不好对各类语言信息变成机器可直接读取的形式,所以暂时基于理解的分词系统还处在试验阶段。等待更好的完善。1.2.3基于统计的分词方法单从形式上看,词是稳定的字的结合,所以在上下文中,相邻的字一起出现的次数越多,就会越有可能是一个词。因此字和字相邻共现的频率或概率能够较好的反映成词的准确度。因此我们可以对字段中相邻共现的各个字的结合的频率进行统计,计算它们的出现次数。定义两个字的相互出现次数,计算两个汉字相邻共同出现的概率。相互出现概率表现了汉字之间结合关系的紧密程度。如果紧密程度高于某一个概率时,就可以认为这两个字可能构成了一个词了。这个方法只是需要对字段中的字组频度进行统计,不用切分词典,所以又称作无词典分词法或统计取词方法。但是这类方法也是有一定的局限性的,会经常抽出一些共现频度高、但并不能构成词的常用字组,例如“之一”、“这一”、“我的”、“有的”、“许多的”等等。1.3 中文分词技术的应用要对中文信息进行处理,就必须有中文分词技术。在所有中文信息处理系统中,都需要用到中文分词技术。在中文搜索引擎、信息检索、同音字识别、中分校对、中外文对译等,也有着广泛的应用。1.3.1中文分词技术在中文信息检索的应用在信息检索系统中,人们是用自然语言输入查询信息的。系统查找用户需要的内容时,把查询内容分为索引项,然后再进行信息检索。分词技术在信息检索系统的运用在系统的索引项实现了按词索引,在系统和用户的接口上,完成了自然语言的查询。1.3.2中文分词技术在翻译中的应用这里所说的中外文翻译是指机器对中外文进行翻译,而不是人工进行翻译。把中文翻译成外文,最基础的条件就是分词要正确,才可以明白中文句段,然后才能做出正确的翻译。不然,翻译将没办法进行。2 FTP搜索引擎概要设计2.1 工作原理用户对在完成对FTP搜索引擎的爬虫模块配置文件的配置,便可执行爬虫程序。FTP搜索引擎的工作模式大概如下:1) 爬虫程序会自动生成用户指定IP网段中包含的所有IP地址,对它们逐一进行扫描,已确认哪些站点提供了匿名的FTP服务。2) 当程序成功登录某个FTP站点之后,程序会自动获取其各级目录下的文件和目录列表,并且会获取各个文件的大小、最后修改时间,最后程序会根据对照表对获取的各个文件进行分类。3) 在所有操作完成之后,会生成该站点的目录和源文件。在扫描完用户配置的站点之后,扫描成功的站点会写入一个站点列表的文件,以便以后使用。在索引模块中,会根据爬虫模块获取的数据,进行处理,建立索引数据库。图 21 搜索引擎系统工作图2.2 工作流程图图 22 FTP搜索引擎工作流程图3 FTP搜索引爬虫模块擎详细设计3.1 设计目的如今很多企业和个人都建立了自己的FTP站点,在各个FTP站点中包含有大量的资源,如何才能快速的在浩如烟海的资源中找到自己需要的资源,已经成为一个需要我们不得不解决的难题。要解决这一问题,需要我们建立一个有效的FTP搜索引擎,而实现搜索引擎的第一个问题就是如何获取各个站点提供的资源信息。本次设计的题目为FTP搜索引擎爬虫模块,其用途就是搜集各个FTP站点的数据信息,并且组织成一个特定的数据格式,索引模块得去这组数据之后,利用再次处理这些数据,建立索引数据库。3.2 功能模块设计3.2.1 网段扫描3.2.1.1 设计思路经过查阅资料,由于Ftp 搜索引擎与WWW 搜索引擎最大的区别就在于Ftp 站点内没有与WWW 页面相对应的超链接,因而Ftp 搜索引擎的站点获得策略就不能模仿搜索引擎业非常时兴的超链分析技术。在本次Ftp 搜索引擎爬虫模块的设计里,我采用了IP 扫描技术和手工添加技术的中和。一方面,程序一开始会读取系统的配置文件,获知本次扫描的网段范围,在对配置文件进行数据效验通过之后,程序会调用相应模块生成该网段中所有的等待访问的IP地址。另一方面,程序本身维护有一个IP站点列表,该列表中会保存用户手工配置的以及上一次扫描成功的IP站点性息,该IP列表中包含有提供FTP服务站点的IP地址和端口号。3.2.1.2 实现方法根据网段生成IP地址的方法多种多样,在本次设计时,我考虑过以下两种方法。1) IP地址分为四段(如:192.168.0.1)每一段可能出现的值为0255,用程序控制IP地址段的进位(256进1)。用循环的方式,每次为最低位执行加1操作,并验证其是否需要执行进位操作,即可实现对于网段中IP地址的生成操作这种方法虽然能够较好的实现网段中IP地址的生成操作,但是由于要人工编写代码实现数据的进位操作,实现较为繁琐,而且由于种种原因的综合影响,不能够完全保证代码的稳定性。2) IP地址分为四段(如:192.168.0.1),每一段的长度为256,由于系统本身并不支持256进位的方式,虽然编程可以对其进行认为的进位控制,但是仍然带来一些不必要的麻烦。由十进制和二进制之间的转换得到启发。在实现是我IP地址转换为十进制进行操作。转换方式为(以192.168.0.1为例)192*2563+168*2562+0*256+1=3232235521。同样使用循环的方式,每次对转换为十进制的IP地址进行加一操作,这样就避免了人工编写代码控制进位的麻烦,程序的稳定性和代码编写的效率都大大提高。在上面的循环操作执行完成之后,我们可以得到一个IP地址表,注意,此时IP地址表中的IP地址均以十进制的数字方式保存。在使用时,我们需要将这些数字再次转化为IP地址。利用.net Framework中提供的IPAddress类中的Parse方法,可方便的将我们获取的十进制数据再次转换为类型为IPAddress类型的IP地址数据,最后我们使用ToString()方法将其转化为字符串,方便以后的使用有上面的描述可以看出,在目前的状况下方法2)优于方法1),因此本次设计我选用了方法2)进行实现。3.2.1.3 核心代码publicList<String> newGetIPList() List<String> listIP = newList<string>();long startIP, endIP; startIP = frs_num0 * 256 * 256 * 256 + frs_num1 * 256 * 256 + frs_num2 * 256 + frs_num3; endIP = tos_num0 * 256 * 256 * 256 + tos_num1 * 256 * 256 + tos_num2 * 256 + tos_num3; System.Net.IPAddress resultIP;for (long i = startIP; i <= endIP; i+) resultIP = System.Net.IPAddress.Parse(i.ToString(); listIP.Add(resultIP.ToString(); eturn listIP; 图 31 IP网段生成3.2.2 获取数据3.2.2.1 设计思路这一部分的实现虽然比较复杂,但是设计思路却较为简单,首先需要向目标站点发送数据请求。FTP站点会根据请求回传的数据,若请求有误,则会回传错误信息。3.2.2.2 实现方法在前期准备工作结束之后,由于使用的开发语言为C#,因此考虑使用.net Framework中提供的FtpWebRequest类库实现该功能。但是后来发现FtpWebRequest类库中提供的功能并不能很好的满足本次设计的需要,并且对目标FTP站点的配置有一定的要求。因此后来放弃了这种方法,改用套接字的方式实现,向指定站点发送FTP命令,然后获取其回传的数据,由于这种方法可以自由的使用所有FTP命令,所以相对原有的方法更为灵活。下面是两种方法的设计思路。1) 使用FtpWebRequest类:用此方法,首先需要取得FtpWebRequest的实例。注意,这里必须拥有服务器的有效用户名和密码,或者服务器必须允许匿名登录。当需要指定用户名和密码是,可通过设置Credentials属性来制定用于连接服务器的凭据,也可以将它们包含在传递给 Create 方法的 URI 的 UserInfo 部分中。使用FtpWebRequest类可以完成对FTP服务器的多种操作,如获取服务器文件简短列表、获取服务器上文件大小等。经过查阅资料,发现其内部的实现方式仍然是使用FTP命令实现。(如ListDirectory对应的是FTP命令中的NLIST命令,ListDirectoryDetails对应的是FTP命令中的LIST命令)下面简要介绍一下这种方法的使用方式(以下代码执行了一次文件删除操作)publicstaticbool DeleteFileOnServer(Uri serverUri)if (serverUri.Scheme != Uri.UriSchemeFtp)returnfalse; FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri); request.Method = WebRequestMethods.Ftp.DeleteFile; FtpWebResponse response = (FtpWebResponse) request.GetResponse(); Console.WriteLine("Delete status: 0",response.StatusDescription); response.Close();returntrue;图 32FtpWebRequest方式2) 使用套接字(Socket)方式:如果编写过网络程序,那么您对这种实现方法一定并不陌生,在.net中Socket类为网络提供了一套丰富的方法和属性。本次设计使用面向连接的协议(FTP),在进行数据通讯时使用Send和Receive方法实现。IP地址和端口号使用IPEndPoint表示。Socket的SendTimeOut属性中可以支持设置等待时间。使用套接字实现获取数据,可以在代码中选取自己需要的FTP命令使用,因此相比使用FtpWebRequest类库,这种方式拥有更好的灵活性,可以按照自己程序的需要定制。下面列举出本次设计使用的几条重要的FTP命令:LIST:获取FTP站点的文件和目录清单SIZE:获取FTP站点指定文件的大小MDTM:获取FTP站点文件的最后修改时间USER:登录FTP站点使用的用户名PASS:登录FTP站点的用户密码QUIT:关闭FTP连接下面给出部分代码(用于登录FTP服务器):publicvoid login()clientSocket = newSocket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);IPEndPoint ep = newIPEndPoint(IPAddress.Parse(remoteHost), remotePort); clientSocket.SendTimeout = 5000;tryclientSocket.Connect(ep);catch (Exception ex) thrownewIOException(ex.Message); Reply();if (retValue != 220)close();return;if (debug) Console.WriteLine("USER " + remoteUser);sendCommand("USER " + remoteUser);if (!(retValue = 331 | retValue = 230)cleanup();thrownewIOException(reply.Substring(4);if (retValue != 230)if (debug)Console.WriteLine("PASS xxx");sendCommand("PASS " + remotePass);if (!(retValue = 230 | retValue = 202)cleanup();thrownewIOException(reply.Substring(4);logined = true; error = false;chdir(remotePath);图 33 socket方式3.2.2.3 获取文件列表1) 设计思路:使用List命令获取文件和目录列表,根据回传的数据中包含有标志位,说明了该文件名表示的是目录还是文件。在此处遇到了一个服务其兼容的问题,测试时发现FTP服务器返回的数据格式风格不同,如IIS和Serv-U,IIS返回的数据为Windows风格,而Serv-U返回的数据则是Linux风格,因此这里对于返回数据的处理不可能用同样的方法,具体解决方法请参见3.2.4服务器兼容中的描述。2) 实现方法:使用Socket中的Send命令,向FTP服务器发送LIST命令。同样,使用Socket提供的命令Receive,接收指定字节数的数据,并将数据存如缓冲区,此处指定的缓冲区大小为512个字节。通过回传字符串中的标志位,获取回传的字符串中的目录。下面是用于获取数据的主要代码:Socket cSocket = createDataSocket(); sendCommand("LIST " + mask);if (!(retValue = 150 | retValue = 125 | retValue = 226) thrownewIOException(reply.Substring(4); mes = ""while (true) Int32 bytes = cSocket.Receive(buffer, buffer.Length, 0); mes += ASCII.GetString(buffer, 0, bytes); if (bytes < buffer.Length) break; 图 34 获取文件列表3.2.2.4 获取目录列表1) 设计思路:使用List命令获取文件和目录列表,根据回传的数据中包含有标志位,说明了该文件名表示的是目录还是文件。在此处遇到了一个服务其兼容的问题,测试时发现FTP服务器返回的数据格式风格不同,如IIS和Serv-U,IIS返回的数据为Windows风格,而Serv-U返回的数据则是Linux风格,因此这里对于返回数据的处理不可能用同样的方法,具体解决方法请参见3.2.4服务器兼容中的描述。2) 实现方法:使用Socket中的Send命令,向FTP服务器发送LIST命令。同样,使用Socket提供的命令Receive,接收指定字节数的数据,并将数据存如缓冲区,此处指定的缓冲区大小为512个字节。通过回传字符串中的标志位,获取回传的字符串中的目录。下面是用于获取数据的主要代码:Socket cSocket = createDataSocket(); sendCommand("LIST " + mask);if (!(retValue = 150 | retValue = 125 | retValue = 226) thrownewIOException(reply.Substring(4); mes = ""while (true) Int32 bytes = cSocket.Receive(buffer, buffer.Length, 0); mes += ASCII.GetString(buffer, 0, bytes); if (bytes < buffer.Length) break; 图 35 获取目录列表3.2.2.5 获取文件大小1) 设计思路:使用SIZE命令获取指定目录下指定文件的大小,根据回传的数据中包含有标志位,说明了该命令是否执行成功,若执行成功,则获取了文件的大小。2) 实现方法:使用Socket中的Send命令,向FTP服务器发送SIZE命令。同样,使用Socket提供的命令Receive,接收指定字节数的数据,并将数据存如缓冲区,此处指定的缓冲区大小为512个字节。使用SIZE命令获得的文件大小单位是字节,通过将返回数据除以1024获得将单位转换为KB。下面为该部分的主要代码:publiclong getFileSize(String fileName)if (!logined)try login(); catch return null; sendCommand("SIZE " + fileName);long size = 0;if (retValue = 213)size = Int64.Parse(reply.Substring(4);elsethrownewIOException(reply.Substring(4);return size;图 36 获取文件大小3.2.2.6 文件分类1) 设计思路:在配置文件中建立一个文件分类列表,由于文件的类型划分是根据文件的后缀名进行的,因此单独将文件的后缀名分离出来,对照文件分类表进行类型匹配。若匹配成功则返回类型编号,若失败,则返回一个默认编号。2) 实现方法:使用.net Framework中提供的文件读取类StreamReader,将文件分类列表读入内存,与从FTP站点上获取的文件的后缀名进行逐一的匹配操作,若成功,返回类型编号,失败返回一个默认值。从FTP站点上获取的文件名中包含后缀名,使用split()函数将文件的后缀名分离出来用于后缀名匹配。下面为该部分的主要代码:privatevoid GetInfo() String strTmp;Int32 styleLength; strTmp = sw.ReadLine(); styleLength = Int32.Parse(strTmp); styleNames = newStringstyleLength;for (Int32 i = 0; (strTmp = sw.ReadLine() != null; i+) styleNamesi = strTmp; 图 37 初始化文件读取类publicString GetStyle(String name) String tmp = name.Split('.');String extensionName = tmptmp.Length - 1;/获取信息foreach (String str in styleNames) tmp = str.Split(',');for (Int32 i = 1; i < tmp.Length; i+) if (tmpi.CompareTo(extensionName) = 0) return tmp0; return"0" 图 38返回文件类型3.2.3 关于编码问题的解决3.2.3.1 问题描述在最初使用Socket方式获取数据时,对于英文,数据传递没有问题,当出现中文文件时,发现获得的数据中,所有的汉字都变为“?”,更为严重的问题是当利用获取的文件名发送SIZE等命令时,FTP站点不能正确解析这些带有汉字的编码,造成此次数据获取失败。3.2.3.2 解决方法.net提供了Encoding的方法进行编码的转换,于是我尝试将传送数据的编码由ASCII转换为GB2312。因为ASCII编码不支持汉字,而GB2312支持汉字。结果最终发现当发送的字符转换为GB2312后,FTP服务器仍然不能正确解析,获取文件大小以及最后修改时间是仍然会发生错误。之后又尝试将编码方式改为UTF8编码,结果仍然是不能解决汉字问题。如果FTP搜索引擎的爬虫部分不能有效的获取带有汉字的文件数据,那么它的实用性将大大的降低。经过几天是尝试和查阅网上资料,发现编码问题应该是可以解决的,网上也有人提供了使用其它方式实现的支持汉字的FTP类。由于改动这个FTP类会对本程序造成较大的改动,所以我仍然决定在现有的基础上对程序进行修改。经过努力,最后终于找到了修改的方法,代码的修改其实很简单,却很容易让人忽略,其方法为将代码Encoding ASCII= Encoding. ASCII改为Encoding ASCCI = Encoding.Default。经此修改,虽然在有些服务器上仍会出现汉字的乱码,但是却能成功的使用这些获取的数据向FTP服务器发送请求。而且这些乱码也可在数据获取完成后使用转码的方式进行修正。3.2.4 服务器兼容3.2.4.1 测试环境介绍现阶段市面上使用的操作系统只要有Windows系列和Linux,而两个系统的数据传输的风格并不相同。因此,在做数据测试时,我选用了Linux风格的Serv-U和Windows风格的IIS分别搭建了FTP服务器。下面简要介绍一下这两款服务器软件。1) Serv-U:该软件是 RhinoSoft公司开发的Serv-U作为搭建FTP服务器端的软件,在国内市场被广泛使用。Serv-U 是目前众多的FTP 服务器软件之一。通过使用Serv-U,用户能够将任何一台PC 设置成一个FTP 服务器,这样,用户或其他使用者就能够使用FTP 协议,通过在同一网络上的任何一台PC与FTP 服务器连接,进行文件或目录的复制,移动,创建,和删除等。这里提到的FTP 协议是专门被用来规定计算机之间进行文件传输的标准和规则,正是因为有了像FTP 这样的专门协议,才使得人们能够通过不同类型的计算机,使用不同类型的操作系统,对不同类型的文件进行相互传递。2) IIS:IIS是Windows系统提供的一种服务,它包括WWW服务器、FTP服务器和SMTP服务器,由于有操作系统提供,且功能强大,操作简便,因此是现在假设个人网站的首选。3.2.4.2 问题描述由于可用于搭建FTP站点的服务器多种多样,如何能够较好的兼容各种社会上所使用的FTP服务器成为一个不容我忽视的问题。在编写代码时,发现现在失眠上两款被广泛使用FTP服务器软件虽然可以使用相同的FTP命令做它们进行操作,但是在命令执行之后,他们回传的数据格式并不相同。这直接造成程序不能够正常的解析从FTP站点获取的数据。例如IIS传回的数据中如果某一项包含“<dir>”则表明该数据为一个目录,但是如果使用Serv-U作为服务器,则以在开头以“d”表示该条数据为一个目录。3.2.4.3 解决方法如何解决兼容性问题是程序开发中的一个难题,在本次设计开始之初,我就考虑过这个问题,尽量的使用了标准的命令来对服务器进行操作。然而虽然使用FTP命令后对服务器的操作实现了兼容,但是回传数据没有兼容。因此不得不回传的字符串进行分析。IIS:03-29-11 11:14PM 0 aa - (2) .txt03-29-11 11:14PM 0 aa - (3).txt03-29-11 11:14PM 0 aa - (4).txt03-29-11 11:14PM 0 aa - (5).txt03-29-11 11:14PM 0 aa - (6).txt03-29-11 11:14PM 0 aa - (7).txt03-29-11 11:14PM 0 aa - (8).txt03-27-11 11:24AM 56755096 AdbeRdr1000_zh_CN_10.0.0.396.exe04-22-11 04:43PM <DIR> New Folder图 39 IIS返回的数据Serv-U:-rw-rw-rw- 1 user group 0 Mar 29 23:14 aa - (2) .txt-rw-rw-rw- 1 user group 0 Mar 29 23:14 aa - (3).txt-rw-rw-rw- 1 user group 0 Mar 29 23:14 aa - (4).txt-rw-rw-rw- 1 user group 0 Mar 29 23:14 aa - (5).txt-rw-rw-rw- 1 user group 0 Mar 29 23:14 aa - (6).txt-rw-rw-rw- 1 user group 0 Mar 29 23:14 aa - (7).txt-rw-rw-rw- 1 user group 0 Mar 29 23:14 aa - (8).txt-rw-rw-rw- 1 user group 56755096 Mar 27 11:24 AdbeRdr1000_zh_CN_10.0.0.396.exe

    注意事项

    本文(毕业设计(论文)FTP搜索引擎设计.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开