Linux聊天程序论文.docx
《Linux聊天程序论文.docx》由会员分享,可在线阅读,更多相关《Linux聊天程序论文.docx(47页珍藏版)》请在冰豆网上搜索。
![Linux聊天程序论文.docx](https://file1.bdocx.com/fileroot1/2022-11/16/bb861675-da9c-498f-a2b1-9e0ef3482266/bb861675-da9c-498f-a2b1-9e0ef34822661.gif)
Linux聊天程序论文
基于Linux网络聊天室的设计与实现
摘要
基于资源共享和软件自由的思想,linux成为越来越多技术人员的理想之国。
作为一个稳定的多用户类unix网络操作系统,linux能提供完美的网络解决方案,出色的胜任网络构建和维护。
出于对unix技术优势的出色继承和延续,linux对多种网络协议的支持使得网络解决方案极大的丰富。
在Linux中的网络编程是通过socket接口来进行的,Socket是TCP/IP网络的API。
不但是一种特殊的I/O,它也是一种文件描述符。
socket有TCP和UDP两个协议,TCP协议有数据的可靠性、应用的实时性、网络的可靠性三个优点。
因此选择TCP协议更为可靠。
数据这里NGE听。
;
编程人员共同开发的。
本系统实现了在Linux网络聊天室的基本功能。
在Linux下编写并调试服务器端程序和客户端程序,实现了客户、服务器之间的连接接和通信。
可以在单机上开辟两个窗口分别运行客户、服务器端的程序,或者两台主机链接分别作为客户和服务器的方式。
总体来说,此设计以嵌入式C语言为开发语言,使用网络套接字socket建立连接,并运用多线程实现数据的交换,程序经gcc调试成功,可以在单机网络聊天中使用。
关键字:
网络聊天室;Linux;socket;TCP;C语言
Networkchatroomofdesignandimplementationunderlinux
Abstract
Onthebasisofthethoughtwithfreeresource-sharingandsoftware,linuxbecomesmoreandmoretechnicalstaff'sidealcountry.andisattractingmorepersonstojoininthisidealconstantly.Asasteadymulti-userunixnetworkoperatingsystem,linuxcanoffertheperfectnetworksolutionandiscompetentofconstructingandmaintainingthenetworkexcellent.Fortheinherittingandextendingsplendidlyoftechnologicaladvantagetounix,theabundancethatlinuxsupporttomanykindsofprocotolsmakesthenetworkwithgreatsolution.
InLinux,networkprogrammingiscarriedoutthroughthesocketinterface,SocketistheAPIofTCP/IPnetwork.NotonlyIsaspecialI/Obutalsoisafiledescriptor.SockethastwoprotocolswhichareTCPandUDP,TCPprotocolhasthreeadvantagesoftheeliabilityofdata,theapplicationofreal-timeandthenetworkreliability.SoitismorereliabletochooseTCPprotocol.
ThesystemImplementatethebasicfunctionofthenetworkchatroomunderlinux.PreparedanddebuggingserverandclientprogramintheLinux,achievedtheLinksandcommunicationbetweentneserverandclient.CanopenuptwowindowsInasinglemachinetoruntheserverandclientprogramrespectively,ortoconnecttwohosts,respectively,asthewayoftheclientandserver.Overall,thedesignuseClanguageforthedevelopmentlanguage,creatlinkusingthenetworksocket,andusemultipletotheexchangeofdata.Theprogrambythesuccessofgccdebugdebugger,youcanuseitinthechatofstand-alonenetwork.
Keyword:
NetworkChatRooms;Linux;Socket;clanguage
第一章绪论
1.1研究背景
Linux是一种针对PC计算机和工作站的操作系统,Linux是为普通个人电脑设计,可免费分发的、兼容Unix的操作系统。
它支持各种各样的软件(包括大量免费软件)。
它是在386电脑上开发出来的,它现在支持486、586、Pentium、PowerPC、SunSparc和DECAlpha的硬件。
LinusTorvald和其它的遍布世界各地的编程人员共同开发的,作为一种操作系统,它具有与Unix、Mac、Windows和WindowsNT同样的功能[1]。
提到Linux就不能不提GNU和Unix。
RichardM.Stallman建立的自由软件联盟出版了两种许可证,GNU通用公共许可证(GNUGneralPublicLicense,GPL)和GNU函数库通用公共许可证(GNULibraryGneralPublicLicense,LGPL)。
大部分GNU工程的软件和文档是以GNU通用公共许可证发行的,但是有一些库是以GNU函数库通用公共许可证发行的。
按照GNU通用公共许可证的规定,Linux的源代码可以自由获取,这满足了我们学习该系统的强烈愿望。
GPL充分体现了Stallman的思想:
只要用户所做的修改是同等自由的,用户可以自由地使用、拷贝、查询、重用、修改甚至发布这个软件。
通过这种方式,GPL保证了Linux(以及同一许可证下的大量其他软件)不仅现在自由可用,而且以后经过任何修改这后都仍然可以自由使用[2]。
Unix是由AT—T贝尔实验室的KenThompson和DennisRitchie于1969年在一台已经废弃了的PDP-7上开发的;最初它是一个用汇编语言写成的单用户操作系统。
后来,他们又在PDP-11上用C语言重新编写(发明C语言的部分目的就在于此),把Unix做成为了一个文本处理系统,这使Unix在贝尔实验室得到广泛的应用。
Unix的最初版本免费提供给许多知名的大学的计算机系使用。
加州大学伯克利分校的计算机系就是其中的一名,并地Unix进行了修改增加了许多新的特点,这就是广为人知的BSC版本的Unix。
与此同时,其它独立开发的Unix版本也开始萌生[3]。
Unix不断发展了,各种版本被应用到不同的计算机使用。
而Linux最初是专门为基于Intel的个人计算机设计的。
1、Linux的早期
1991年,一名叫LinusTorvalds的芬兰大学生对Unix各种版本对于80386类的机器的脆弱支持十分不满,他决定要开发出一个全功能的、支持POSIX标准的、类Unix的操作系统内核,该系统吸收了BSD和SystemV的优点,同进摒弃了它们的缺点。
他独立把这个内核开发到0.02版,这个版本已经可以运行gcc、bash和很少的一些应用程序。
1994年,Linux已经升级到1.0版本。
它的源代码量也呈指数形式增长,实现了基本的TCP/IP功能,此时Linux已经拥有大约10万的用户。
2、Linux的现状
作为一各服务器级的操作系统,Linux已经成熟了。
现在的Linux内核由150多行代码组成,能作为Web服务器平台,也为越来越多的商业用户提供文件和打印服务。
它既被当作邮件服务器的一种候选平台,也被当作一种强壮而安全的防火墙。
Linux的企业级特性,比如支持多处理器、支持大型文件系统、日志文件系统以及密集型计算和高可用性集群技术,也逐步成熟,桌面上的Linux也在继续完善。
3、Linux的未来
Linux最强大的生命力在于其公开的开发过程。
每个人都有可以自由获取内核源程序,每个人都有要不得以运载源程序加以修改,而后他人也可以自由获取你修改后的源程序。
Linux这种独特的自由流畅的开发模型已被命名为bazaar(集市模型)。
Bazaar开发模型通过重视实验,征集并充分利用早期的反馈,对巨大数量的脑力资源进行平衡配置,可以开发出更优秀的软件。
1.2应用概述
嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。
简单的说就是系统的应用软件与系统的硬件一体化,类似与BIOS的工作方式[4]。
具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时的和多任务的体系。
随着Intenet的日益发展和普及,网络在嵌入式系统中应用非常广泛,越来越多的嵌入式设备采用Linux操作系统[5]。
Linux在近十年的时间里发展迅速,不仅奠定了坚实的网络基础,成为众多服务器强有力的支持,更是发展了嵌入式领域乃至桌面领域。
Linux作为一种自由免费的操作系统,相对于windows具有良好的稳定性和出色的网络性能,此被广泛应用于各种网络服务器。
尽管在短期内还不能形成规模与windows系统相抗衡,但是他的发展势头已不可阻挡。
在服务器领域,Linux已经是后来居上,占领了微软windows服务器的一些市场,甚至有取代unix的迹象。
Linux是一个源代码公开的免费操作系统,具有强移植性,所以对基于Linux的Socket网络编程的研究越来越重要,其c/s模式如图1.1所示。
图1.1客户端/服务器模式
Socket实际是网络传输层供给应用层的编程接口。
传输层则在网络层的基础上提供进程到进程访问的逻辑通道,而应用层的进程则利用传输层向另一台主机的某一进程通信[6]。
Socket就是应用层与传输层之间的桥梁,如图1.2所示。
图1.2socket是传输层与应用层间的桥梁
使用Socket编程时可以开发客户机和服务器应用程序,它们可以在本地网络上进行通信,也可以通过Internet在全球范围内进行通信。
编写并运行Socket的客户端和服务器端程序,双方通过套接字建立了服务连接请求,并且通过一些方法提高Socket的性能。
1.3优点
近年嵌入式系统发展成为热点,Linux环境下利用socket设计网络聊天室系统,是嵌入式发展的一个趋势之一,主要因为它有以下三个优点:
1、Linux作为一个开源的操作系统,利于使用人员交流学习,而且Linux的许多特性有利于网络编程。
首先,Linux系统拥有许多网络编程的库函数,可以方便地实现客户机/服务器模型。
其次,Linux秉承了UNIX的设备无关性这一优秀特征,即它通过文件的描述符实现了统一的设备接口,网络的Socket数据传输是一种特殊的I/0,Scoket也是一种文件描述符。
再有,且其内核小、效率高、兼容性好和稳定性强等优点。
2、Socket接口是一个通用的接口,它不