前言
1.1
课题背景及目的
我们选择的课题是:基于Linux的网络聊天室的设计与实现。对于这个题目的背景和目的,可以从以下个方面去分析理解。
1.1.1
1.1.1操作系统的选择
(1)内核的弹性
Linux的内核表现出了高度的可配置性和独立性,主要是完成:IO驱动设备管理,TCP/IP,以及任务调度.Linux的标准内核发布版本有40~50MB,而我现在在一些评估板上试验的嵌入式Linux系统(使用Arm或M68K系列的CPU)只用到了2MB,同样实现了网络功能和完整的任务调度,这使得Linux可以适
用于从高端服务器到嵌入式应用的各个等级的计算平台上,与之相比,windows 没有明确的内核概念.windows只适合台式机,NT从未真正的打入高端服务器,WinCE也遇到了一些结构性的困难.
(2) 内核的任务管理
衡量一个内核的重要指标是多任务环境下的安全性和任务调度的效率.Linux在这方面继承了Unix的优点.而win9.x(包括winme)从来就没有实现过安全的多任务环境,NT/2K
勉强做到了安全性,但是效率还是不敢恭维,我曾今将一个多串口并发驱动的应用程序改写成多线程的方式,原本希望提高处理速度,实际上速度降低了2到3倍.这也就不难理解为什么同样的企业级应用在低硬件的机器上跑得比高硬件配置的NT/2k快.
(3)系统的可增值性与历史兼容性
一个设计优良的操作系统应该有一个精简和一致的构造,在添加新的功能时不必破坏原有的结构,而且在后继发展中能够保持前后一致性.Unix由于当初设计时的科学性,以致于20多年的时间内,没有在设计思想上做过大的变动.虽然Unix有很多的版本,但是通过Posix标准,这些系统在源代码上保持高度的兼容.与之相比,windows的几乎每个操作系统的框架设计都显得十分的随意,几乎不考虑硬件有了新的发展后,会出现什么问题.windown16位和32位两个时期的操作系统出现明显的"代沟",作为一个好的os,这种硬件上的差异是应该由其本身来考虑的,而不是把问题交给二次开发者,比如定义一堆PSZ,LPSZ的指针,将来64位时代, 大概要出现LLPSZ了:)
(4) 技术上的发展潜力
windows现在的技术架构基本上走进了一个死胡同,很难有大的创新.除非提出一个完全不同的系统,然后在里面做个win32子系统,以兼容现有的程序.
对于linux来说,一个很好的架构放在哪里,现在主要是填充内容,丰富应用.在可以预见的时间内,windows无法在架构上超过Linux.
1.1.2
1.1.2传输协议的原则
(1)TCP协议既提供了有保证的传送,也给出了出错误的条件。
(2)如果需要传送大的数据块,那么使用TCP使一个套接口一直保持开放比把数据分成小块更为有效(用户数据协议中数据包的物理上的大小限制是8192字节,但真正用户数据可用的每包只有大约5200字节)。
(3)当丢失的数据包需要被检测并重发时软件更复杂。
作为使用频率最高的网络软件,即时聊天已经突破了作为技术工具的极限,被认为是现代交流方式的象征,并构建起一种新的社会关系。它是迄今为止对人类社会生活改变最为深刻的一种网络新形态,没有极限的沟通将带来没有极限的生活。
聊天一直是网民们上网的主要活动之一,网上聊天的主要工具已经从初期的文字群落
、论坛变为以MSN、OICQ(又称QQ)、聊天室为代表的即时通讯软件。大部分人只要上网就会开着自己的MSN或QQ或者进入关心的主题聊天室。据统计,迄今为止,全球约有一亿多人使用即时通讯软件在网上交流。中国网民惯用的主流聊天室从1999年2月诞生到现在,注册用户已超过1.6亿,在线用户最高时超过200万人,而每天独立上线人数更是达到一千二百多万,拥有活跃用户5500万,几乎覆盖所有中国网民。
即时通讯工具使用频率之高,超出任何一种网络软件。有专家预测,到2004年,即时通讯软件将取代电子邮件,成为最流行的互联网通讯工具。现在的聊天室发展极其迅猛,从最初的简单文字聊天,到现在的分主题聊天,语音聊天等等。
聊天室的设计理念和设计方法都发生了深刻的变化。从简单的字符界面到漂亮的图形界面,从漫长的等待消息的发出和到来(有时候可能你的等待是一场空)到迅速的到来并确保其可靠性,设计的人性化和设计的可靠性程度越来越高,设计的复杂性也越来越高。
以前,大多具有聊天功能的工具是采用一一对应的的方式进行的,即只能在同一时间和同一个人聊天,不可以享受多人同时开心畅聊的功能。而且当时的聊天工具只是具备发送和接受消息的功能,在界面和功能方面没有充分为用户考虑,缺乏人机化的设计。
随着多线程和先进的网络技术的出现改变了传统的设计思路,使人们可以通过聊天室来认识更多的朋友,大家同时在线讨论共同关心的问题。新的设计方法能够由设计者自己根据网络情况和服务器的情况来定义聊天室的最多在线人数,还可以根据不同人的需要设计不同的房间,来满足大家在网络世界中寻找志同道合的朋友的需要。更可以根据不同讨论主题的需要设计不同的漂亮的界面。
1.4 设计过程及研究内容
本设计是一个基于TCP/IP协议的聊天室服务器端。本系统两个主要的研究内容是实现聊天服务器端的可视化和实现后台数据信息的管理。要让用户更方便、更好的使用聊天室的服务端,用户界面应该是友好的,所以这是一个需要研究的内容。还有管理后台数据信息,主要是通过实现与客户端的通信,接收到服务器端注册的用户信息和聊天记录信息,将其写入文件,然后对文件分别进行操作。当接收某客户端发送的消息,服务器端通过识别认证后再把消息发给相应的客户端。