户端同服务器端的通信,客户端首先发送一个"SYN"数据包。如果服务器收到SYN标记,它将发回一个"SYN+ACK"数据包。接着,客户端为了表示收到了这个SYN+ACK信息,会向服务器发送一个最终确认信息(ACK包)。这种SYN,SYN+ACK,ACK的步骤被称为TCP连接建立时的"三次握手",在这之后,连接就建立起来了,这个连接将一直保持活动状态,直到超时或者任何一方发出一个FIN(结束)信号。这种通信模式也叫客户端/服务器(C/S)模式。
主机A 主机B
图1-3 三次握手协议
由此可见,通过客户端和服务器的"三次握手",双方可以建立畅通的通信信道,在此信道上双方互相传输数据。
1.3.2 服务器和客户机
网络最基本的目的就是让两台机器连接到一起,并相互"交谈"或者"沟通"。一旦两台机器都发现了对方,就可以展开一次令人愉快的双向对话。但它们怎样才能"发现"对方呢?这就像在游乐园里那样:一台机器不得不停留在一个地方,侦听其他机器说:"嘿,你在哪里呢?"
"停留在一个地方"的机器叫做"服务器"(Server);到处"找人"的机器则叫做"客户机"(Client)或者"客户"。它们之间的区别只有在客户机试图同服务器连接的时候才显得非常明显。一旦连通,就变成了一种双向通信,谁来扮演服务器或者客户机便显得不那么重要了。
所以服务器的主要任务是侦听建立连接的请求,这是由我们创建的特定服务器对象完成的。而客户机的任务是试着与一台服务器建立连接,这是由我们创建的特定客户机对象完成的。一旦连接建好,那么无论在服务器端还是客户机端,连接只是魔术般地变成了一个IO数据流对象。从这时开始,我们可以象读写一个普通的文件那样对待连接。所以一旦建好连接,我们只需使用自己熟悉的IO命令即可。这正是Java联网最方便的一个地方。
图1-4 服务器和客户机的连接
1.4本文内容安排
本论文内容安排如下:
第二章为聊天系统的需求分析,主要介绍系统的可行性研究,需求分析流程图等。
第三章为概要设计,分模块介绍系统的具体实现过程。
第四章为详细设计。
2 需求分析
2.1.1 可行性分析
经济可行性:由于本系统的主要背景是毕业
课程设计,不注重直接的经济效益和其后的发展方向,只在注重自身水平和能力的提高,对自身的经济要求也不高,只要有一台能运行Java软件的电脑便可,所以不用考虑到经济问题。
技术可行性: 本系统的开发利用Microsoft SQL Server2005作为本系统的数据库,它是一个支持多用户的新型数据库,适用于大中规模的数据量需求。校园网的建设也为新系统服务器/客户端的结构提供了硬件的支持。使用Java作为系统开发的开发环境,它提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。
运行可行性: 本系统为一个小型的即时聊天系统,所耗费的资源非常的小,现在一般的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。
综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。
2.1.2系统功能需求
本系统主要通过客户端,服务器端来体现即时通讯的基本功能。
(1)服务器端
1.处理用户注册
2.处理