1、.装订线.山 东 农 业 大 学毕 业 论 文题目: 学 院 信 息 科 学 与 工 程 学 院专业班级 电子信息科学与技术 X 班届 次 届 学生姓名 学 号 指导教师 XXX 职称 二 O 一四 年 六 月 十四 日目 录1 绪论11.1 在线词典的特点21.2 设计路线及开发工具21.2.1 设计路线21.2.2 开发工具22 开发工具介绍32.1 Linux 操作系统简介32.1.1 Linux 操作系统的优势32.1.2 Linux 发行版本 32.1.3 Linux 编程环境 32.2 SOCKET52.2.1 socket 类型52.3 TCP 52.4 SQLite3 62.4
2、.1 SQLite3 简介62.4.2 SQLite3 的数据类型63 方案设计及技术关键73.1 方案设计73.1.1 功能分析73.1.2 设计分析73.2 SOCKET103.2.1 概述103.2.2 地址填充123.3 TCP133.3.1 TCP 连接过程134 编程实现144.1 服务器端144.2 客户端 145 程序测试结果与分析165.1 程序测试结果165.1.1 服务器端165.1.2 客户端165.2 结论 22参考文献24致谢25附录26Contents1 Foreword11.1 The characteristics of the online dictiona
3、ry21.2 Design route and development tools21.2.1 Design route21.2.1 Design route22 Development tools to introduces32.1 Introduction to the Linux operating system32.1.1 The advantage of Linux operating system32.1.2 Linux distributions32.1.3 Linux programming environment32.2 SOCKET52.2.1 The socket typ
4、e52.3 TCP52.4 SQLite362.4.1 Introduction of SQLite362.4.2 SQLite3 data types63 The design and key technology73.1 System design73.1.1 Functional analysis73.1.2 Design analysis73.2 SOCKET103.2.1 The summarize of SOCKET103.2.2 Fill the address123.3 TCP133.3.1 TCP connection process134 Programming to re
5、alize144.1 The server side144.2 The client side145 Test results and analysis program165.1 System testing analysis165.1 The server side165.1 The client side165.2 Cnclusion22References24Acknowledgments 25Appendix26基于 Linux的在线词典设计与实现级电子信息科学与技术 X 班指导老师 XXX 职称【摘要】在当今时代人们越来越依赖网络,不仅仅是网上冲浪网上购等娱乐活动,如今诸如词典等一些
6、工具书也被在网上大量的运用。1990 年以后,由于计算机技术和网络技术的飞速发展,在线词典应运而生。在线词典是建立于 Interne 之上的,通过使用某种计算机语言将机器可读的词典转化为可在网络中在线检索的数据库系统。它是利用网络通信技术可为读者提供实时共享查询服务的重要网上参考工具,是在 Intemet 上运行的词典,是比电子词典更为领先的词典形式。网络载体以其优越的综合性能,代表了现代信息技术发展的最高成就,并在多方面克服了传统载体的不足。基于 Linux C 通过 TCP网络通信技术以及数据库存储技术就能够简单实现在线词典的开发。【关键词】Linux C 、TCP 网络通信 、SQlit
7、e3 数据库The design and implementation of online dictionary based on LinuxWeixianyu【Abstract】More and more relies on the network in the present era people, is not merely on the net on the surfing network buys and so on the recreational activities, now such as dictionary and so on some reference books a
8、lso by on-line massive utilization.After 1990, as a result of the computer technology and the networking rapid development, the online dictionary arises at the historic moment.The online dictionary is establishes above Interne, through uses some kind of machine language the dictionary which may read
9、 the machine to transform for may in the network the online retrieval database system.It is may provide the real-time sharing inquiry service using the network communication for the reader on the important network to refer to the tool, is dictionary which moves on Intemet, compares the electronic di
10、ctionary more leading dictionary form.The network carrier by its superior overall performance, has represented the modern information technology development highest achievement, and has been overcoming the traditional carrier insufficiency variously.Can realize the online dictionary development simp
11、ly based on Linux C through the TCP network communication as well as the database memory technology.【Key words】Linux C 、TCP 、SQlite3 Database山东农业大学学士学位论文 11 绪论 词典是用来解释词语的意义、概念、用法的工具书。广义的词典包括语文词典及各种以词语为收录单位的工具书;狭义词典仅指语文词典。其整体结构一般由前言、凡例、正文、附录、索引等部分组成。正文以词条的形式解释词目,词条实现有序化编排。从不同的标准或特征出发,词典可分多种类型。中国古代包括词
12、典在内的以解字释词为主要内容的专书统称为字书。尔雅、方言、 说文解字 是中国出现最早的有代表性的字书。电子辞典是指将传统的辞典中的内容转换为数字格式存储的文件,并且将它们保存在存储器中。用户使用时只需要通过键盘输入需要查询的条目,电子辞典通过自身携带的处理器,按照一定的编码查询方式便可以找到相关条目的解释,并在显示屏上显示从而让用户了解。比如输入一个英文单词后便可以找到该单词的中文解释、音标,有的产品还可以进行实际的发声演示。子词典有两种类型:一种是将某种文本词典转换为光盘形式的电子词典,它具备文本词典的所有功能,同时还具有文本词典所不具备的多媒体效果;另一种是混合型电子词典,如现在市场有售的
13、金山词霸快译通文曲星,它们一般是以几种文本词典为蓝本,由电脑公司开发,编撰而成。1990 年以后,由于计算机技术和网络技术的飞速发展,在线词典应运而生。在互联网上,能够使用词典、百科全书等进行信息检索的服务。大型的门户网站大多提供免费的词典服务。也有提供更为详细信息的收费服务。 包含词典、短句、翻译等众多在线工具,致力于英语学习交流、及时反馈英语相关问题的社区。“海词“是互联网上首款搜索智能化,词库海量化的网络在线词典。是在 Intemet 上运行的词典,是比电子词典更为领先的词典形式.网络载体以其优越的综合性能,代表了现代信息技术发展的最高成就,并在多方面克服了传统载体的不足,具有比传统介质
14、载体优越得多的性质特征,完全符合现代科学发展对科学交流的要求。最新的实现了网页查词、模糊拼写查词、音节查词、浏览器地址栏查词、语音查词、拍照翻译查词等功能。同时支持桌面端的屏幕取词、手机端的语音查词、摄像头查词、跨软件复制查词、快捷通知栏查词等所有查词功能。在线词典拥有最快捷的查词速度。1.1 在线词典的特点1 信息容量大且资源丰富 在线词典是现代信息技术与传统辞书编撰原理相结合的产物。同传统词典相比,在线词典所具备的优势和特点更符合网络时代的要求。在线词典一般不拘泥于原印刷版的内容,而是增加了许多新的内容,在信息容量上大大超过了印刷版,再加上在线词典可实时更新并加入新的条目,使其在容量上更具
15、优势。它不仅可为读者提供极其丰富而详尽的释义内容,而且可为读者提供来自不同在线词典的释义信息,从而实现多种词典资源的并行搜索服务,同时还可输出集成后的检索结果,使读者获取有关该词目的更为准确而全面的知识。不同门类的在线词典所形成的词典库可供山东农业大学学士学位论文 2读者任意选择使用。在线词典可以容纳海量词汇和相关信息,这是任何工具词典都难以匹敌的。2 实时共享且使用方便在线词典可以充分利用互联网的优势,突破时间,空间,语言障碍,所有网络上的词典尽可随时随地在线使用,读者可根据自己的需要上网检索,浏览。在线词典可供多人同时使用,不会 发生”借阅”冲突(最多会出现网络堵塞)。另外,大部分在线词典
16、可免费使用,这样就实现了信息系统,网络资源共享。重视,利用在线词典体现了直接面向最终用户(读者),即所谓“用户驱动”的时代方向。3 更新及时且内容新颖对于传统的印刷型词典来说,一般需 10 年左右才能修订,更新一次,有的时间更长,对新词汇,新内容的收集反映具有明显的滞后效应.与之相比,在线词典最明显的特点就是它的动态性,可以随时升级系统更新信息,这是光盘版的词典和各种袖珍电子词典所无法比拟的。另外,许多在线词典包括固定词库和自定义词库,其中固定词库是最初建立的词库,而自定义词库则是根据使用者提供的新词而建立的词库。词典编者对自定义词库进行整理并及时添加到词典中,使更多读者获得更完备的知识信息。
17、1.2 设计技术路线及开发工具1.2.1 设计路线按照软件工程管理思想对软件的研究、可行性分析、需求分析、概念结构设计、逻辑结构设计、功能设计、详细设计、编码、实施、维护各阶段进行严格的控制。保证系统开发质量。根据设计任务查阅聊天室系统工作的具体特点、任务组成等,查阅相关资料。深入研究开发系统所需的相关理论和技术,通过需求分析确定本系统的总体设计方案。1.2.2 开发工具1、Linux 操作系统完善的内置网络是 Linux 的一大特点。Linux 在通信和网络功能方面优于其他操作系统。其他操作系统不包含如此紧密地和内核结合在一起的连接网络的能力,也没有内置这些联网特性的灵活性。而 Linux
18、为用户提供了完善的、强大的网络功能。因为 Linux的这几大优点是得程序的开发便得方便快捷。2、socket 网络套接字Socket 是一种 IPC 方法,它允许位于同一主机(计算机)或使用网络连接起来的不同主机上的应用程序之间交换数据。第一个被广泛接受的 socketAPI 实现于 1983 年,出现在了 4.2BSD 中,实际上这组 API 已经被移植到了所有的 UNIX 实现以及其他大多数操作系统上了。3、SQLite 数据库SQLite 数据库是小型便携式,轻量级数据库,便于移植。关系型数据库。 没有用户帐户的概念,依赖于文件系统。存放的数据可以不定义数据类型,但是为了程序员之间进行交
19、流或者数据库的移植,一般给存储的数据添加数据类型。山东农业大学学士学位论文 32开发工具的介绍2.1 Linux 操作系统简介2.1.1 Linux 作为操作系统的优势1、低成本开发系统Linux 的源码开放性允许任何人可以获取并修改 Linux 的源码。这样一方面大大降低了开发的成本,另一方面又可以提高开发产品的效率。2、可应用与多种硬件平台Linux 可支持 x86、PowerPC、ARM、MIPS、SH 等多种体系结构,并且已经被移植到多种硬件平台。Linux 采用一个统一的框架对硬件进行管理,同时从一个硬件平台到另一个硬件平台的改动与上层应用无关。3、可制定的内核Linux 具有独特的
20、内核模块机制,它可以根据用户的需要,实时地将某些模块插入或移出内核,并能根据嵌入式设备的个性需求量体裁衣。经剪裁的 Linux 内核最小可达到150KB 一下,尤其适合嵌入式领域中资源受限的实际情况。4、性能优异Linux 系统内核精简、稳定高效,能够充分发挥硬件的功能,因此它比其他操作系统的运行效率更高。在个人计算机上使用 Linux 时,可以将它作为工作站。它非常适合在嵌入式领域中应用,对比其它操作系统,它占用的资源更小,运行跟稳定,速度更快。5、良好的网络支持Linux 是首先实现 TCP/IP 协议的操作系统,它的内核在网络方面非常完整,并提供了对包括 10 吉比特、100 吉比特及
21、1000 吉比特的以太网,还有无线网、令牌环和光纤甚至卫星的支持。2.1.2 Linux 发行版本由于 Linux 属于 GNU 系统,而且这个系统采用 GPL 协议,并保证了源代码的公开,于是众多公司或组织发布了诸如 Red Hat、Debian、Ubuntu 等版本。本次开发选择的 Linux 版本为 Ubuntu。这是一个以桌面应用为主的 Linux 操作系统。Ubuntu 基于 Debian 发行版和 GNOME 桌面环境,与 Debian 的不同在于它每 6 个月发布一个新版本。Ubuntu 具有庞大的社区力量,用户可以方便地从社区获得帮助。2.1.3 Linux 编程环境1、Lin
22、ux 编辑器 vi 的使用在使用和管理 Linux 的过程中,许多的时候需要使用文件编辑器修改配置文件,正因如此,Linux 系统中由许多优秀的文本编辑器。Linux 系统提供了一个完整的编辑器家族系列,包括 ed、ex、Emacs 等。按功能可将它们分为两类:行编辑器(ed、ex)和全屏山东农业大学学士学位论文 4编辑器(vi、Emacs) 。行编辑器每次只能对单行进行操作,使用起来很不方便。而全屏编辑器可以实现对整个屏幕进行编辑,用户编辑的文件直接显示在屏幕上,从而克服了行编辑器的那种不直观的操作方式,便于学习和使用,具有强大的功能。基本上 vi 可以分为三种模式,分别是一般模式、编辑模式
23、和命令模式,各种模式的功能区分如下:1) 一般模式以 vi 打开一个文件就直接进入一般模式了(这是默认模式) 。在这个模式中,你可以使用上下左右键来移动光标,可以删除正行,也可以复制、粘贴文件数据。2) 编辑模式在编辑模式中可以进行删除、复制、粘贴等操作,但是却无法编辑文件的内容,只有当你按下 i、I、o、O、a、A、r、R 中任何一个之后才会进入编辑模式。3) 命令模式按下【ESC】键可退出编辑模式而进入一般模式,然后在其中输入:、/、?三个中的任何一个就可以将光标移到最底下一行从而进入命令模式。在这种模式中,可以进行查找、读取、存盘、等一系列操作。2、GCC 编译器GCC 是一套有 GNU
24、 开发的编程语言编译器。它是一套以 GPL 及 LGPL 许可证所发行的自由软件,也是 GNU 计划的关键部分,亦是自由的类 UNIX 以及苹果电脑 Mac OS X 操作系统的标准编译器。GCC 原名为 GNU C 语言编译器。因为它原本只能处理 C 语言。GCC 很快发展变得可以处理 C+。之后可有处理 Fortran、Pascal、Java 等其他语言。GCC 是一个交叉平台编译器,能够在当前 CPU 平台上为多种不同体系结构的硬件平台开发软件,因此尤其适合在嵌入式领域的开发编译。GCC 的编译流程分为 4 个步骤,分别为1) 预处理阶段在该阶段,编译器将代码中的.h 文件编译进来,并且
25、用户可用“-E”进行查看。该选项是让 GCC 在预处理结束后停止编译过程。2) 编译阶段接下来进行的是编译阶段。在这个阶段中,GCC 首先由检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作。在检查无误后,GCC 把代码翻译成汇编语言。用户可以使用“-S”选项来进行查看,该选项只进行编译而不进行汇编,生成汇编代码。3) 汇编阶段汇编阶段是把编译阶段生成的“.s”文件转成目标文件。此时可以使用选项“-c”就可以看到代码已转化为“.o”的二进制目标代码4) 链接阶段在成功编译后,就进入了链接阶段。这里涉及一个重要的概念:函数库。系统吧函数山东农业大学学士学位论文 5放入“lib.so.
26、6”的库文件中,GCC 会在默认时搜索“/usr/lib”路径查找。3、Make 工程管理器工程管理器可以用来管理较多的文件。如果一个由上百个源文件构成的项目,如果其中只有一个或者少数几个文件进行了修改,若用 GCC 进行编译,则需要把所有的文件重新编译一遍。原因就在于编译器不知道哪些文件是最近跟新的,所以程序员就不得不处理所有的文件来完成重新编译工作。实际上 make 就是一个自动编译管理器,能够根据文件时间戳自动发现跟新过的文件,从而减少编译的工作量。同时,它通过读入 Makefile 文件的内容来执行大量的编译工作,用户只需要编写一次简单的编译语句即可。它大大提高了项目开发和维护的工作效
27、率,几乎所有的嵌入式项目编程均会设计 make 管理器。2.2 SOCKET一个典型的客户端/服务器场景中,应用程序使用 socket 进行通信的方式如下。1、各个应用程序创建一个 socket。scket 是一个允许通信的“设备” ,个应用程序都需要用到它。2、服务器将自己的 socket 绑定到一个众所周知的地址(名称)上使得客户端能够定位到它的位置。2.2.1 socket 类型每个 socket 实现都至是、提供了两种 socket:流和数据报。这两种 socket 类型在UNIX 和 Internet domain 中都得到了支持。表 2.1 对这两种 socket 类型的属性进行了
28、总结(947 页)。1、socket(SOCK_STREAM)常需要一对互相连接的 socket,因此流 socket 通常被称为面向连接的。术语“对等 socket”是指连接另一端的 socket,“对等地址”表示该socket 的地址,“对等应用程序”表示利用这个对等 socket 的应用程序。有些时候,术语“远程”是作为对等的同义词使用。类似地,有些时候术语“本地”被用来指连接的这一端上的应用程序、socket 或地址。一个流 socket 只能与一个对等的 socket 进行连接。2、数据报(SOCK_DGRAM)允许数据报以称为数据报的消息的形式进行交。在换数据报 socket 中,消息边界得到了保留,但数据报传输是不可靠的。消息的到达可能是无序的、重复的或者根本就无法到达。数据报是更一般的无连接 socket 概念的一个示例。与流 socket 不同,一个数据报 socket 在使用时无需与另一个 socket 连接。2.3 TCPTCP 在两端点(即应用程序)之间提供了可靠的、面向连接的、双向字节流通信信道。主要特点如下。1、面向连接的传输;2、端到端的通信;3、高可靠性,确保传输数据的正确性,不出现丢失或乱序;