课程设计说明书
课 程: 计算机网络课程设计
题 目: 基于
TCP
协议 的
网上聊天程序
学 院: 计算机与控制学院
专 业: 计算机科学与技术
姓 名:
学 号:
指导教师:
2009 年 10 月 9 日
摘 要
这是基于 TCP 协议网上聊天程序。主要分为两个部分,一部分是服务器,一部分是客户
两者结合,实现了基本的局域网多人聊天功能。对于程序设计语言,选择了 JAVA 语言。
JAVA 程序语言自带了强大的网络功能设计包,而且具有跨平台性,这无疑可以简化很多工
作,节省很多时间。为了聊天数据的可靠性,TCP 协议无疑是一个很好的选择。为了实现
即时通信,引入了多线程技术,从而实现了通信的即时性和并发性。
关键词:TCP;JAVA;多线程;
目 录
引言............................................................................................................................................3
1. 系统概述................................................................................................................................3
2. 需求分析................................................................................................................................4
2.1. 系统需求.....................................................................................................................4
2.1.1. 功能需求..........................................................................................................4
2.2. 开发环境.....................................................................................................................5
3. 详细设计................................................................................................................................6
3.1. 服务器设计.................................................................................................................6
3.1.1. 服务器界面设计..............................................................................................6
3.1.2. 数据包..............................................................................................................7
3.1.3. 服务器线程块..................................................................................................8
3.1.4. 打开服务器......................................................................................................8
3.1.5. 用户服务线程类..............................................................................................8
3.1.6. 用户服务线程链表类......................................................................................8
3.2. 客户端设计.................................................................................................................9
3.2.1. 客户端界面设计..............................................................................................9
3.2.2. 数据包............................................................................................................10
3.2.3. 连接服务器....................................................................................................11
3.2.4. 接收线程........................................................................................................11
3.2.5. 发送文字信息................................................................................................11
3.2.6. 修改昵称........................................................................................................11
4. 所遇到的问题和分析解决..................................................................................................11
4.1. 用户界面...................................................................................................................11
4.2. 关于多线程...............................................................................................................12
4.3. 关于滚动条...............................................................................................................12
5. 系统特色及关键技术..........................................................................................................12
5.1. 系统特色...................................................................................................................12
5.2. 关键技术...................................................................................................................12
5.2.1. ServerSocket 类.............................................................................................12
5.2.2. 多线程技术....................................................................................................13
5.2.3. 链表技术........................................................................................................13
6. 结论......................................................................................................................................13
引言
这个项目主要是为了实现简单的局域网的多人在线聊天功能。在平时,要是临时讨论一
些小问题,都要做一次集中。如果有了这个项目,无疑方便了局域网中的各个终端之间的
群体讨论。程序迷你,对于计算机配置几乎没有要求,也没有平台限制,在同一局域网中
只要操作系统安装有 JAVA 虚拟机,双击即用。
1. 系统概述
在开发此系统之前,先要安装好 eclipse 软件(本人用的是 eclipse3.2)。 Eclipse 是著名
的跨平台的自由集成开发环境(IDE)。最初主要用来 Java 语言开发,但是目前亦有人通
过插件使其作为其他计算机语言比如 C++和 Python 的开发工具。Eclipse 的本身只是一个框
架平台,但是众多插件的支持使得 Eclipse 拥有其他功能相对固定的 IDE 软件很难具有的灵
活性。许多软件开发商以 Eclipse 为框架开发自己的 IDE
因为 Eclipse 是不自带 GUI 构建器的。为了方便制作图形界面,还要先安装 GUI 构建
器插件 Visual Edit(本人用的是 1.4 的版本)。Visual Editor 所利用的最为明显的工具是
GEF,即图形化编辑框架(Graphical Editing Framework)。 GEF 建立于本地 Eclipse 图形
化工具集 SWT 之上,以使得开发一个图形化编辑器或者所见即所得文本编辑器更为容易。
所以,要使 Visual Edit 可以正常工作,我们还要先安装 GEF 插件。不过,GEF 作为 Visual
Editor (以及其他生成代码的图形化工具)的一部分,它在后台使用 Eclipse 建模框架
(Eclipse Modeling Framework, EMF),以在模型、 Java 类和图形化表示之间进行映射,
其中模型是使用 XML 元数据交换(XML Metadata Interchange, XMI)在内部存储的。所以
还要先安装好 EMF 插件。这三个插件都安装好之后,我们就可以像 VC 一样方便的做出想
要的图形界面了。
在这里不得不说的是 Eclipse 软件的插件的安装。安装插件时,最好还是通过 Eclipse
的插件安装界面一步一步老老实实的安装,而不要直接把插件复制到对应的文件夹中,因
为后者往往不能正常工作。
这个系统实现了基本的局域网多人聊天功能。这个系统可分为两个部分:服务器、客户
端。服务器负责和下面各个客户端之间通信的中转,当有客户端登录时,服务器会记下客
户端和服务器之间建立的套接字信息。当客户端发来文字信息时,服务器会通过已建立的
套接字向每一个客户端发送接收到的信息。
2. 需求分析
2.1. 系统需求
2.1.1. 功能需求
客户端:
功 能
描 述
聊天用户由此登录服务器,进行聊天。
输入项
1. 服务器 IP:字符型,用于连接服务器。
2. 昵 称:字符型,聊天时,显示在其它客户端上。
3. 文字信息:字符型,你想要发送出去的聊天信息。
处理描述
1. 填写服务器 IP,点击“连接服务器”按钮连接服务器。
2. 单击“修改”按钮,就可以修改昵称,同时,“修改”二字变为“确定”。
3. 在发送框中填入发送信息,点击“发送”按钮发送。
4. 有人发送新的文字信息,在显示栏上就会显示出来。
输出项
和服务器建立连接。
发送文字信息。
界面要求
输入框:
服务器 IP、昵称、文字信息
显示框:
聊天信息和连接信息
按钮:
连接服务器、修改、确定、发送
服务器:
- 1
- 2
- 3
前往页