资源描述:
《基于linux网络聊天室的设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、目录1引言11.1课程设计背景11.2课程设计目的21.3课程设计内容22技术介绍32.1TCP和UDP介绍32.2客户/服务器模型42.3网络套接字(socket)的概念52.4多线程的概念63系统设计73.1系统结构设计73.2通信设计74系统实现84.1系统调用相关函数84.2系统实现过程说明105运行效果11结束语13致谢14参考文献15附录16刘佳《基于Linux网络聊天室的设计》第21页共21页1引言1.1课程设计背景Linux是一种针对PC计算机和工作站的操作系统,它具有像Windows和Ma
2、c那样的功能齐全的图形用户界面(GUI,GraphicalUserInterface)。LinusTorvald和其它的遍布世界各地的编程人员共同开发的[1]。提到Linux我们不能不提GNU和Unix。RichardM.Stallman建立的自由软件联盟出版了两种许可证,GNU通用公共许可证(GNUGneralPublicLicense,GPL)和GNU函数库通用公共许可证(GNULibraryGneralPublicLicense,LGPL)。大部分GNU工程的软件和文档是以GNU通用公共许可证发行的,
3、但是有一些库是以GNU函数库通用公共许可证发行的。按照GNU通用公共许可证的规定,Linux的源代码可以自由获取,这满足了我们学习该系统的强烈愿望。GPL充分体现了Stallman的思想:只要用户所做的修改是同等自由的,用户可以自由地使用、拷贝、查询、重用、修改甚至发布这个软件。通过这种方式,GPL保证了Linux(以及同一许可证下的大量其他软件)不仅现在自由可用,而且皮后经过任何修改这后都仍然可以自由使用。Unix是由AT—T贝尔实验室的KenThompson和DennisRitchie于1969年在一台
4、已经废弃了的PDP-7上开发的;最初它是一个用汇编语言写成的单用户操作系统。后来,他们又在PDP-11上用C语言重新编写(发明C语言的部分目的就在于此),把Unix做成为了一个文本处理系统,这使Unix在贝尔实验室得到广泛的应用。Unix的最初版本免费提供给许多知名的大学的计算机系使用。加州大学伯克利分校的计算机系就是其中的一名,并地Unix进行了修改增加了许多新的特点,这就是主为人知的BSC版本的Unix。与此同时,其它独立开发的Unix版本也开始萌生。Unix不断发展了,各种版本被应用到不同的计算机使用
5、。而Linux最初是专门为基于Intel的个人计算机设计的。(1)Linux的昨天1991年,一名叫LinusTorvalds的芬兰大学生对Unix各种版本对于80386类的机器的脆弱支持十分不满,他决定要开发出一个全功能的、支持POSIX标准的、类Unix的操作系统内核,该系统吸收了BSD和SystemV的优点,同进摒弃了它们的缺点。他独立把这个内核开发到0.02版,这个版本已经可以运行gcc、bash和很少的一些应用程序。后来,他又开始了在因特网上寻求广泛的帮助。1994年,Linux已经升级到1.0版
6、本。它的源代码刘佳《基于Linux网络聊天室的设计》第21页共21页量也呈指数形式增长,实现了基本的TCP/IP功能,此时Linux已经拥有大约10万的用户。(2)Linux的今天作为一各服务器级的操作系统,Linux已经成熟了。现在的Linux内核由150多行代码组成,能作为Web服务器平台,也为越来越多的商业用户提供文件和打印服务。它既被当作邮件服务器的一种候选平台,也被当作一种强壮而安全的防火墙。Linux的企业级特性,比如支持多处理器、支持大型文件系统、日志文件系统以及密集型计算和高可用性集群技术,
7、也逐步成熟。桌面上的Linux也在继续完善。KDE桌面提供的图形用户界面在易用性和可配置方面都能和微软的Windows相媲美。(3)Linux的明天Linux最强大的生命力在于其公开的开发过程。每个人都有可以自由获取内核源程序,每个人都有要不得以运载源程序加以修改,而后他人也可以自由获取你修改后的源程序。Linux这种独特的自由流畅的开发模型已被命名为bazaar(集市模型)。Bazaar开发模型通过重视实验,征集并充分利用早期的反馈,对巨大数量的脑力资源进行平衡配置,可以开发出更优秀的软件。本联盟就是想通
8、过bazaar开发模型,在网上召集一些Linux的爱好者,开发出更优秀的操作系统或软件。1.2课程设计目的由于Linux的开源的特点,越来越多的人转而使用Linux做为PC机的操作系统。但是Linux的真正兴起只是在最近几年,因此很多功能并不是很完善,并且由于Linux的开源特征,很多软件开发公司很难从中获得直接利益,因此很多Windows上的实用的软件,在Linux下却很少见。本课程设计正是为了解决Linux下