基于Linux操作系统的聊天软件的设计毕业设计说明书.doc
《基于Linux操作系统的聊天软件的设计毕业设计说明书.doc》由会员分享,可在线阅读,更多相关《基于Linux操作系统的聊天软件的设计毕业设计说明书.doc(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 2014届毕业设计说明书 基于Linux操作系统的聊天软件的设计 学 院: 电气与信息工程学院 学生姓名: 指导教师: 职称 讲师 专 业: 电子信息工程 班 级: 电子1002班 完成时间: 2014年5月 摘 要 这篇论文整体是在linux下并通过网络实现类似于qq的的一篇操作报告。开发的框是C/S框架,由server端和client端组成,首先设置好端口参数和ip地址,在编译,调试后实现server端与各个client端的连接,连接后以后server端作为中间端来使客户机实现通讯,因为服务器只存在一个但是客户端存在多个所以我们必须通过链表去管理,client端的信息发送通过封装在soc
2、ket结构体中进行传输。本设计采用TCP/IP协议这样可以保证连接可靠,而且项目管理中釆用linux流行的gcc和makefile编译,大大提高了编译和调试效率,提高了项目完成的效率,但是为了模拟几个client端我们就需要在pc机上再安装一个虚拟系统来操作client端。本次设计的聊天通信使用全双工,主要实现了功能如:用户的帐号与密码的注册与登录,客户点对点聊天,客户之间的群聊,以及文件的发送与接收。测试运行后的可靠性满足Linux网络聊天的基本要求。关键词:linux, socket, ,server端,client端,网络编程 Abstract This thesis as a whol
3、e is under linux platform and through the local area network to achieve similar qq chat. The overall use of C / S framework, the main server -side and client into two parts , set ip and port number , and Linux, compile and debug procedures to achieve client and server connections each client side ,
4、and then as the server -side following transfer to achieve communication between client end . Since only one server -side , and you can have multiple client end , so the server side using a single list to manage multiple client side information , client side encapsulated for transmission of informat
5、ion sent through the body in the socket structure . This design uses the TCP / IP protocol ,so you can ensure reliable connection, but also preclude the use of project management in a popular linux gcc and makefile to compile, compile and debug greatly improved efficiency , improve the efficiency of
6、 the completion of the project, but due to simulate multiple client end Therefore, in the operating environment need to install a virtual system on the PC to operate multiple client side . The chat tool designed for full-duplex communication using communication , to achieve the five main functions:
7、to-peer chat between new user registration and login, user , group chat among users , file encryption transmission between users. After running the test program to meet the basic needs of network reliability in linux in chat .Keywords : linux, socket, server -side , client end , network programming
8、目 录 1 绪 论11.1 课题研究的背景及意义11.2 TCP/IP介绍21.3 本文的研究内容42 技术说明与方案选择52.1通信方式52.1.1 UDP通信52.1.2 TCP通信52.2客户/服务器模型62.3网络套接字(socket)的概念72.4多线程的概念72.5I/O多路复用83 系统实现113.1 Linux提供的有关Socket的系统调用113.2 实验过程说明(使用TCP/IP)133.3 TCP通信实现144 运行效果29结束语34致谢35参考文献36附录A 服务器程序38附录B 客户端程序47 1 绪 论 1.1 课题研究的背景及意义随着计算机应用技术的日益普及,网络
9、也遍及到我们生活的每个角落,很好的利用这一资源,将成为我们工作和学习,带来极大的方便。并且可以极高的提高我们的工作效率。所以,各种聊天软件应运而生了。如国外的MSN等,国内主要的有腾讯的qq,还有Ticq和一些在网页上的即时通讯工具,像Chinaren网站上的WebMaster等等,都做得即美观又强大,腾讯的qq有非常大的用户群。这些网络聊天软件极大程度上方便了处于在世界各地的友人之间的联系,无论你和亲人、朋友相隔多远,你都可以随时随地和他们交流。并且,你还可以和外国友人交流学习。在网络发展上,最早出现的是分布在很大的地理范围内的远程网络(WideAreaNetwork,WAN),例如美国国防
10、部高级研究计划局首先研制的 ARPA 网,它从 1969 年建立,至今已经发展成为跨越几大洲的巨型网络。70 年代中期由于微型计算机的出现和微处理器的出现,以及短程通讯技术的迅猛发展,两者相辅相成,又促进以微机为基础的各种局域网络(Local Area Network,LAN)的飞快发展,1975 年美国 Xerox 公司首先推出了 Ethernet,与此时英国剑桥大学研制成剑桥环网,他们是 LAN 的代表。LAN 与 WAN 有所区别,其特点为:1)有限的地理范围,通常网内的计算机限于一栋大楼,楼群或一个企业及单位。2)较高的通讯速率,大多在每秒 1-100M bps ,而 WAN 大多在几
11、十 Kbps。3)通讯介质多样。4)通常为一个部门所拥有。特别是 80 年代以来,以微机为基础,LAN 技术有了极其迅速的发展。90 年代计算机网络化大趋势尤为明显。具称 1978 年全世界约有 700 万人每天使用计算机,而到 1998 年上升到 5000 万人,目前全世界已经拥有超过一亿台的计算机,预计每天上机人数可达 2 亿以上。计算机的性能价格比以每年 25%的速度在提高。微机的应用已经渗透到国民经济的各个部门,乃至家庭和个人。这标志着正步入信息时代,世界范围内的社会信息数据正在每年增长 40%到 45%的年增长率在增加,这就是迫切实现网络化的动力源泉。据称,约有 65%的计算机要联网
12、或已经联网,以求彼此通信,达到资源共享的目标。90 年代计算机网络化更加向深度和广度方向发展。人们要求网络传输的内容范围增加,诸如数据之外,还需传输声音,图形,图象和文字,这就是以网络为基础的多媒体技术,使网络的应用广度更加扩大,并最终为信息化社会的实现所必须的网络连接奠定基础。当前国际 LAN 的市场上,两雄称霸,龙争虎斗的局面,将可能持续相当长一段时间。正如大家知道的那样,80 年代后期美国 Novell 公司先是以“一花独秀,压倒群芳”之势占据了国际 LAN 市场 60%以上,一路领先,扶摇直上,尤其是 NetWare 386 V3.11 版推出后,受到普遍的注目;随后,国际上的软件公司
13、龙头老大 Microsoft 公司先后推出了LAN Manager V1.0(即 LAN 3+ Open)、LAN Manager V2.0 和 V2.1,后来居上,成为世界LAN 的两大支柱之一。1992 年 10 月 Microsoft 又抢先发布了 LAN ManagerV2.2,以更加领先于 Novell 的 NetWare 386 V3.11,但后者立即随后推出了 NetWare 4.0。可见“龙争虎斗”,瓜分市场的情景。Novel LAN 采取了“将网络协议软件与网络操作系统 NetWare 紧密结合起来”的设计构想,可达到节省开销,提高运行效率之目标。Novell LAN 最大的
14、特点是与其底层的网卡的无关性,即是说 NetWare 可以虚拟的在所有流行的 LAN 上面运行,使它成为一个理想的开发网络应用软件的平台,吸引了广大用户软件人员为之开发越来越多的网络应用软件。反过来又推动其发展,同时 Novell LAN 采取了开放协议技术(OPT),允许各种网络协议紧密结合,进而在 NetWare 386 V3.11 版中采用了 NLM 模块的组合技术,可以实现异机种联网的难题。此外,Novell LAN 不需专用服务器,占用工作站内存最小,使用方便,功能强,效率高,兼容性强,可靠性高,保密性强,容错性好。尤其在 NetWare 386 V3.11版中实现了服务器软件的“分
15、布式结构策略”、“横向信息共享”、“报文传送”技术、增添了“TCP/IP 栈”、实现了“SNA 协议”和“开放式数据链路接口”等一系列新技术,使 NovellLAN 更深入人心,扩大了市场。与此同时,微软的LAN Manager V2.1和V2.2局域网版除了有一般的基础的优点,还应用了“客户机服务器”(Client/Server)的强大内网络体系结构,以及基于多用户,多任务并发先进的 OS/2 作为服务器,并以 OS/2,Unix, VMS 和 Windows NT 作为系统的开发平台,更方便与异类机种访问网络。由于 LAN Manager与 Windows 的联系;使它有更高的的性格比。在
16、网络化技术飞速发展的今天,TCP/IP 协议可谓是立下了汗马功劳。起先,TCP/IP(Transmission Control Protocol/Internet Protocol)是由美国国防部于 70 年代提出来的,将中大型机连成的网络互连起来,并按 TCP/IP 协议这种模式实现异网之间通讯,接着美国国防部高级计划局(DARPA)于 70 年代末提出了几种国际互连(Internet)技术。这些技术实现了在科学研究,军事和社会生活迫切需要共享的资料。题1.2 TCP/IP介绍Transmission Control Protocol/Internet Protocol的简写,中译名为传输控
17、制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议,Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台电脑规定一个地址。(1) 协议优势在社会长期的发展过程中,IP逐步取代了其余的网络。这是一个简单的解释。IP传输通用数据。数据能够用于任何目的,并且能够很轻易地
18、取代以前由专有数据网络传输的数据。(2)协议的缺点第一,协议在服务,接口方面的区分不明确。好的软件工程在功能与实现上面是有明确的区分的,TCP/IP没有很好地做到这点。第二,主机-网络层本身并不是实际的一层,它定义了网络层与数据链路层的接口。1.3 linux介绍 Linux是一种开源的操作系统,它拥有像Windows和Mac那样的功能齐全的UI界面(GUI,Graphical User Interface)。Linus Torvald。作为一种很棒的操作系统,它具有与Unix,Mac,Windows和Windows NT相似的的功能,但是其中又会有不同的地方。 提到Linux我们一定要知道G
19、NU和Unix。Richard M.Stallman创建的自由软件联盟推出了两种许可证,GNU是通用公共许可证(GNU Gneral Public License,GPL)和GNU函数库通用公共许可证(GNU Library Gneral Public License,LGPL)。除了一些库是以GNU函数库通用公共许可证发行的,其他基本上GNU工程的软件和文档是以GNU通用公共许可证为基础发布的。按照GNU的相关规定,Linux的源代码可以在网上免费自由获取,这一点为我们学习者提供了极大的方便。GPL极大的体现了Stallman的思想:只要用户所做的修改是有利于系统发展的,用户可以自由地使用、
20、拷贝、查询、重用、修改也可以发布这个修改后的软件。就这样GPL保证了Linux的优点不仅现在自由可用,而且经过修改后的系统都仍然可以自由使用。 Unix是由ATT贝尔实验室的Ken Thompson和Dennis Ritchie在已经废弃了的PDP-7上开发的在1969年;刚开始它是一个仅用用汇编语言单编写的一个建议的单用户用户操作系统。后来,又在PDP-11上用C语言重新编写系统,把Unix做成为了一个文本处理系统,这样极大的促进了Unix在贝尔实验室得的使用。Unix的最初版本不收费的供应给众多的大学的计算机系去使用。加州大学伯克利分校的计算机系就是在这众多的大学中,并对Unix进行了完善
21、并且增加了许多新的特点,这就是被广大的开发者所熟知的的BSC版本的Unix。在这个事间的同时,很多其他的的Unix版本也开始萌生。Unix不断发展壮大,许多版本被应用到不同类型的的计算机使用。而Linux最初就是专门为Intel的个人计算机设计的。(1)Linux的昨天 1991年,一名叫Linus Torvalds的芬兰大学生觉得Unix各种版本对于一个类型的机器的兼容性比较差(80386类的机器),于是他决定要开发出一个全功能的、并且支持POSIX标准的、类似于Unix的操作系统的系统内核,该系统取得了BSD和System V 的精华,同进去除了它们的糟粕。他将内核开发到了0.02版,这个
22、版本中已经可以运行gcc、bash和其他少量的应用程序。后来他在英特网的帮助下在在1994年将Linux升级到1.0版本。它的源代码量也呈指数形式迅速增长,实现了基本的TCP/IP功能,在此同时大约有100000用户开始使用Linux操作系统了,Linux系统开始被广大的用户所认可。(2) Linux的今天 作为服务器级的操作系统,在广大的开发者的共同努力下Linux操作系统已经非常成熟了。现在的Linux内核集成了150万多行代码,不仅可以作为Web服务器平台,而且也为越来越多的用户提供文件和打印服务。它既被当作邮件服务器的一种候选平台,也被当作一种强壮而安全的防火墙。 Linux的企业级特
23、性:Linux系统不仅支持多处理器、支持大型文件系统、日志文件系统而且在密集型计算和高可用性集群技术上面也逐步成熟。 现在的Linux的UI界面也在继续完善。KDE桌面提供的图形用户界面在易用性和可配置方面和微软的Windows不相上下。(3) Linux的明天 Linux最强大的生命力在于其开源。每学习者都有可以轻松自由的获取内核源代码,每个人都可以运载源程序并对其加以修改,而后的他人也可以自由获取你修改后的源程序。集市模型就是为Linux这种独特的自由流畅的开发模型已被命名。集市模型是通过重视实验征集和充分利用早期的反馈,通过平衡的配置脑力资源,从而开发出更优秀的软件。 1.4 本文的研究
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Linux操作系统的聊天软件的设计 毕业设计说明书 基于 Linux 操作系统 聊天 软件 设计 毕业设计 说明书
限制150内