全文总字数:2946字
毕业论文课题相关文献综述
聊天交流是目前互联网提供的主要内容。聊天系统有多种实现方式,类似ICQ属于一种点对点的聊天系统;还有一种是基于Socket的集中式聊天系统,这种聊天系统需要登陆统一的聊天服务器。在基于Socket的聊天系统中,主要有两种角色:服务器和客户端,不同的客户端登陆集中式的服务器,通过服务器将一个客户端发出的信息推送到其他所有客户端。 聊天系统在客户端和服务器之间主要传送的是文字信息,服务器端只需要把最近的文字信息推送到客户端,这样减少了网络传输内容,节省了网络传输的时间,提高了聊天速度。这种推技术是目前基于Socket聊天系统的主要实现技术。在基于Socket的聊天系统中,客户端发出聊天信息的同时,客户端也在接受服务器发送过来的其他人的聊天信息,因此,请求和响应不存在那种前后对应关系,是两种分别独立进行的进程。因为服务器任何时候都可能发送信息到客户端,因此,客户端和服务器一旦建立连接,必须能让服务器在以后发送中寻找定位到这个连接。以下介绍几个主要的技术:1.Linux系统Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。Linux可以使多个程序同时并独立地运行。Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。正是由于Linux系统的功能强大性,所以我们才能在这系统的基础上开发一系列的软件应用。2.多线程技术在Linux系统中,我们可以进行多线程的任务。多线程是指从软件或者硬件上实现多个线程并发执行的技术。在一个程序中,一些独立运行的程序片段叫作线程(Thread),利用它编程的概念就叫作多线程处理(Multithreading)。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。我们这里使用Linux系统中的Thread库,之所以选择多线程而不是多进程,是因为一:线程是一种耗资源非常节约的多任务操作方式,在linux下创建一个进程必须给它分配独立的的地址空间,建立众多的数据表来维护它的代码段,堆栈段和数据段,这是一种耗资源很奢侈的多任务操作方式。在运行一个进程下,创建多个线程,他们彼此之间共用相同的地址空间,而且线程之间切换比进程之间切换多需要的时间小得多。二:线程之间通信有着方便的机制,而进程它们具有独立的数据空间,要进行数据的传递只能通过通信的方式进行,这种方式不仅费时,而且很不方便。线程则不然,由于同一进程下的线程之间共享数据空间,所以一个线程的数据可以直接为其它线程所用,这不仅快捷,而且方便。3.TCP/IP技术TCP/IP不是一个协议,而是一个协议族的统称。里面包括了IP协议,IMCP协议,TCP协议,以及我们更加熟悉的http、ftp、pop3协议等等。 TCP/IP协议族按照层次由上到下,层层包装。最上面的是应用层,这里面有http,ftp等的协议。而第二层则是传输层,TCP和UDP协议就在这个层次。第三层是网络层,IP协议就在这里,它负责对数据加上IP地址和其他的数据以确定传输的目标。第四层是叫数据链路层,这个层次为待传送的数据加入一个以太网协议头,并进行CRC编码,为最后的数据传输做准备。再往下则是硬件层次了,负责网络的传输,这个层次的定义包括网线的制式,网卡的定义等等。发送协议的主机从上自下将数据按照协议封装,而接收数据的主机则按照协议从得到的数据包解开,最后得到需要的数据。TCP和UDP处在同一层---运输层,但是TCP和UDP最不同的地方是,TCP提供了一种可靠的数据传输服务,TCP是面向连接的。所以本应用使用TCP协议来完成信息的传输。4.socket编程接口我们这里运用Linux系统的编程接口Socket,Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求。根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。(1)服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。(2)客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。(3)连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。这样我们就可以实现用户之间的信息交流和文件传输。5.数据库SQLite的运用要实现信息的保存,必须需要数据库。SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中,处理速度也比较快。由于资源占用少、性能良好和零管理成本,它为那些以前无法提供用作持久数据的后端的数据库的应用程序提供了高效的性能。如今没有必要使用文本文件来实现持久存储。SQLite 之类的嵌入式数据库的易于使用性可以加快应用程序的开发,并使得小型应用程序能够完全支持复杂的 SQL。在本应用中,它完全可以胜任保存信息的任务。6.参考文献 [1] 理查德史蒂文斯. UNIX环境高级编程. 人民邮电出版社, 2006.[2] (美)史蒂文斯. Unix网络高级编程. 人民邮电出版社, 2009.[3] (英)马修,(英)斯通斯. Linux程序设计. 人民邮电出版社, 2010[4] 邹思轶.嵌入式Linux设计与应用[M]. 清华大学出版社, 2002[5] 林宇,郭凌云编著.Linux网络编程[M]. 人民邮电出版社, 2000[6] 王荣球. 基于Socket的网上聊天室设计与实现. 中国建设银行湖南省分行科技处, 2002.[7] 周留军、武金磊. 基于socket的简单聊天室的设计与实现. 中国矿业大学信息与电气工程学院, 2008.[8] 朱静丽. 基于Sockets的聊天室研究与实现. 英德市职业技术学校, 2011[9] 束长宝,于照,张继勇. 基于TCP/IP的网络通信及其应用[J]. 微计算机信息. 2006(36) [10] 胡柯,颉谭成,董秀林. 基于TCP/IP和Socket的网络文件传送[J]. 河南科技大学学报(自然科学版). 2003(04)
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。