练手小项目一:JAVA聊天室系統說明书

練手小項目一:JAVA聊天室系統說明书

寒假之余想加强对JAVA的掌握,准备找些小的项目练练手,提高下自己的能力,今天终于完成了第一个小项目,特此发布
此程序参考资料:尚学堂项目及CSDN下载频道网友程序,感谢大家。

时间:2009年1月13日
开发工具:eclipse

项目描述:简单的多人点对点聊天系统,具有输入输出功能,收发信息简单,窗口界面简洁,采用IO,线程等技术

项目思路:
一.建立聊天室窗口界面(客户端)
1.设置窗口大小。
2.添加输入框,显示框。
3.响应关闭窗口事件。
4.响应输入框输入事件。

二.建立服务端
1.建立服务端对象并设置端口
2.接收客户端对象

三.建立客户端对象
1.建立客户端对象并设置IP和端口。
2.与服务端进行连接
写一连接方法,当窗口显示后进行调用。

四.客户端向服务端发送数据
1.利用输出流向服务端发数据。
2.服务端采用输入流接收数据。
问题1:
多次向服务端发送数据时报错
原因:客户端向服务端发送一次数据就关闭了,多次发送无效
解决办法:何时关闭输出流?当窗口退出时关闭。服务端多次接收数据,当服务端建立并且能接收客户端时就一直接收。
问题2:客户端退出时报错
原因:当客户端退出使,服务端还一直等待接收数据,没能关闭
解决办法:捕获EOFException异常
         使用finally关键字关闭dis,s。
         捕获建立服务端时端口被使用的异常。

五.多客户端向服务端发送数据
采用线程机制接收多个客户端数据,实现一线程,利用构造方法接收客户端,当线程启动时就不断接收数据。

六.服务端向客户端发送数据
1.保存线程类
2.添加线程类
3.在线程类中写一发送方法。
何时发送?当服务端接收到数据时,线程类对象拿到客户端,然后向客户端发送。

七.客户端接收数据
1.写一客户端接收线程
2.当输入流变量拿到输入数据时接收数据,并显示在显示框中
何时启动此线程?
当客户端与服务端连接后

八.一个客户端退出时报错
原因:当一个客户端退出时,另一个客户端等待输入。
解决办法:捕获客户端接收数据时SocketException异常。

九.一个客户端退出,另一客户端输入报错
原因:当一个客户端退出时,另一个客户端发送数据时无人接收。
解决办法:当客户端发送给服务端时服务端向外发送时捕获SocketException异常

目录 第一部分 需求说明书----------------------------------------- 1 1.1 开发背景 -------------------------------------------------------- 1 1.2 设计要求 -------------------------------------------------------- 1 1.3 设计目的 -------------------------------------------------------- 1 1.4 项目功能特点 -------------------------------------------------------- 1 1.5 功能实现 -------------------------------------------------------- 2 第二部分 概要设计说明书 ---------------------------------- 3 1引言 ---------------------------------------------------- 3 1.1编写目的 --------------------------------------------------- 3 2总体设计 ---------------------------------------------------- 3 2.1需求规定 --------------------------------------------------- 3 2.2运行环境 ----------------------------------------------------- 3 2.3基本设计概念和处理流程 --------------------------------- --- 3 2.4总体结构 ----------------------------------------------------- 4 2.5功能分配 ----------------------------------------------------- 4 3接口设计 ---------------------------------------------------- 5 3.1用户接口 ----------------------------------------------------- 5 4运行设计 ------------------------------------------------------ 6 4.1运行模块的组合 -------------------------------------------------- 6 4.2运行控制 ------------------------------------------------- 6 5出错处理设计 ----------------------------------------------------- 6 6设计原理 ------------------------------------ 6 6.1通信方式 ------------------------------------ 6 6.2核心算法 ----------------------------------- 6 7设计模型 ------------------------------- 7 8相关控件的介绍 ----------------------------------- 7 第三部分 详细说明书 --------------------------------------- 9 1程序系统结构 ------------------------------------------------- 9 2 客户端模块设计说明 ----------------------------------------------- 9 2.1程序描述 ------------------------------------------------- 9 2.2功能 ------------------------------------------------- 9 2.3设计方法 ------------------------------------------------- 9 3服务器模块设计说明 ------------------------------------------------- 11 3.1程序描述 ---------------------------------------------------- 11 3.2功能 ---------------------------------------------------- 11 3.3设计方法 ---------------------------------------------------- 4 主要代码 ------------------------------ 13 5客户端 ------------------------------ 18 5.1主要实现 ----------------------------------- 18 5.2主要代码 ----------------------------------- 19 6处理通信的主要实现 ------------------------ 22 第四部分 测试分析报告---------------------------------------- 25 1 服务器端 ---------------------------------- 25 2 客户端 ------------------------------ 28 第五部分 课程设计总结报告 ----------------------------- 31 后记(致谢) ----------------------------------------------- 32
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值