JAVA局域网聊天-课程设计.doc
《JAVA局域网聊天-课程设计.doc》由会员分享,可在线阅读,更多相关《JAVA局域网聊天-课程设计.doc(17页珍藏版)》请在沃文网上搜索。
1、课程设计报告面向对象课程设计报告 第 17 页,共 17 页 1课程设计目的面向对象程序设计是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力。2课程设计任务与要求:课程设计任务:局域网聊天程序的设计与实现该程序实现局域网内的聊天功能,包括服务器端程序和客户端程序两部分。客户端程序:可连接到服务器,并将消息发送到服务器端和接受服务器端发送来的信息。服务器端程序:可将消息发送到客户端和
2、接受客户端发送来的信息课程设计要求:课程设计可选用NetBeans、Eclipse、JBuilder等作为开发平台以提高开发效率,尽可能熟练掌握其中一种集成开发环境。建议采用UML建模技术进行系统的分析设计,在Visio中画出系统用例图和类图,并将UML图复制到设计报告中。通过这次设计,要求掌握以下内容:1)面向对象技术中的继承与多态(重载和覆盖)机制、各种修饰符的使用2)类、包、接口的定义与使用3)常用工具类与算法的实现(数组、向量、字符串、链表)4)Java常用标准GUI组件及其事件处理5)Java的异常处理机制6)Java的数据库连接技术7)Java的多线程技术与动画制作8)Java的网
3、络编程设计报告书封面和正文格式要符合淮海工学院课程设计报告书封面与正文标准格式要求,设计报告内容不少5000字。本课程设计报告内容包括:课程设计目的、设计任务与要求、设计说明书(包括:需求分析、概要设计、详细设计)、设计成果(包括:运行界面、主要代码、测试结果)和设计心得、附录或参考资料几个部分。(1) 每位同学通过智能教学平台需提交可独立运行的应用程序,要求程序书写规范,源程序需加必要的注释;(2) 每位同学需独立提交书面设计报告书(每人一份),要求编排格式统一、规范、内容充实,同时通过教学平台提交设计报告电子版;(3) 提交日期:第19周周二(2012 年6月26日)之前。3课程设计说明书
4、(1)需求分析功能分析:该程序实现局域网内的聊天功能,包括服务器端程序和客户端程序两部分。服务器端具有建立侦听服务,转发聊天信息,响应用户下线,统计在线人数。客户端具有请求登陆,请求下线,发送接收群聊和私聊信息,记事本,发送接收文件功能。表1 服务器各模块名称功能汇总表序号模块名基本功能1端口设置设置侦听的端口号,默认为7777。2启动服务开启侦听端口,允许客户端连接。3停止服务关闭倾听端口,中断所有客户端的连接。再次点击则退出。4帮助显示各个模块的功能及操作方法。5状态栏统计在线人数。表2 客户端各模块名称功能汇总表序号模块名基本功能1连接设置设置要连接的服务器所在主机的IP地址和侦听听端口
5、。2文件传输可以与指定的IP地址传送文件。3记事本记录重要的信息并存到本地。4换肤更改背景图片(可换四种)。5发送发送聊天内容。6退出关闭客户端。(2)概要设计3、详细设计 服务器端主要包括4个文件,它们的功能如下:1. Server.java:其主要功能为定义服务器端的界面,添加事件侦听与事件处理。调用serverRun类来实现服务器端对客户端的连接;调用Details类来实现服务器端用户上线与下线的侦听;用变长数组来记录用户列表。2. PortConf.java:是用户对服务器侦听端口进行修改配置的类。3. Objecting.java: 要传输某一类的对象,就要实现Serializabl
6、e接口, 就可以在网络上传输。4. ServerHelp.java:服务器端的帮助。客户端主要包括5个文件,它们的功能如下:1. LogIn.java:注册并登陆到服务器。2. Client.java:其主要功能为定义客户端的界面,添加事件侦听与事件处理。该类定义了connect()与disconnect()方法实现与服务器的连接和断开连接;调用ClientSocket类实现客户端消息的接收,然后转发到客户端的主界面上。3. ConnectConf.java:是用户对所要连接的服务器IP地址和端口的配置。4. NoteBook.java:记录重要的事情,并存在本地。5. UserHelp.ja
7、va:客户端的帮助信息。表3 聊天室基本功能表序号文件名基本功能1Server.java启动服务器2LogIn.java注册登录。3Client.java客户端主界面。4ConnectConf.java设置连接的服务器IP地址和端口。5PortConf.java设置服务器侦听端口。6Objecting.java传输对象。7NoteBook.java便签,可保存到本地。8ServerHelp.java服务端帮助信息9UserHelp.java客户端帮助信息。4课程设计成果运行界面: 服务端服务端界面(Server.java): 端口设置界面: 服务端帮助界面: 注册登录界面(LogIn.java
8、): 客户端主界面: 私聊界面: 另一头客户端:客户端连接设置:记事本界面: 换肤:客户端帮助界面: 主要代码:Server.java/服务端class serverRun extends Thread public void run() try System.out.println(开始SERVERRUN);serversocket = new ServerSocket(port);area.append(new Date().toLocaleString() + 服务器启动 + port+ 端口正在侦听.n);start.setEnabled(false);set.setEnabled(f
9、alse);while (true) Socket socket = serversocket.accept();/接受1个客户连接System.out.println(连接成功);BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream();/获得客户名称String name = br.readLine();area.append(new Date().toLocaleString() + 服务器接收用户+ name + 的连接n);soconly.add(socket);/收集所有
10、SOCKETnum+;showStatus.setText( 当前在线人数: + num);/发送新用户消息Iterator i = soconly.iterator();while (i.hasNext() Socket s = (Socket) i.next();/获得其他SOCKET的通信口ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream();out.writeObject(【系统消息】 + name + 用户进入);sockets.put(name, socket);/收集所有有标市的SOCKETVect
11、or v = getList();Iterator j = soconly.iterator();while (j.hasNext() Socket s = (Socket) j.next(); /获得其他SOCKET的通信口ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream();out.writeObject(v);System.out.println(服务器发送用户列表进入);Details d = new Details(socket);socket_thread.put(name, d);/收集SOCKET
12、线乘d.start(); catch (Exception e) e.printStackTrace();class Details extends Thread boolean alive = true;ObjectInputStream in;ObjectOutputStream out;Socket socket;/客户SOCKETDetails(Socket socket) this.socket = socket;public void run() while (alive) try in = new ObjectInputStream(socket.getInputStream()
13、;Objecting objecting = (Objecting) in.readObject();/获得对象String name = objecting.getKey();/获得名字String content = objecting.getValue();/获得内容if (name.equalsIgnoreCase(all) Iterator i = soconly.iterator();while (i.hasNext() Socket s = (Socket) i.next();/获得其他SOCKET的通信口out = new ObjectOutputStream(s.getOut
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 局域网 聊天 课程设计
