Java聊天室系统程序设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java聊天室系统程序设计
实验报告
院(系):信息与通信工程系
专业:计算机应用技术
班级:
学号:
姓名:
指导老师:
2013/6/8
目录
第一部分:系统设计总述 (2)
1.设计目的: (2)
2.设计总体要求: (2)
3.实现目的: (2)
第二部分:系统需求分析 (3)
1.系统任务描述 (3)
2.系统功能分析 (3)
3.系统可行性分析 (3)
第三部分:系统设计 (4)
1.系统总体结构设计 (4)
2.系统主体的处理流程 (5)
3.系统流程逻辑 (5)
第四部分:代码分析 (6)
1.服务器端部分代码 (6)
2.客户端部分代码 (6)
第五部分:系统的具体实现 (6)
界面设计 (6)
第六部分:小结 (10)
第七部分:参考文献 (10)
1.设计目的:
1.在开发技术和过程中,能够充分学习和使用JAVA的技术,进一步培养学生面向对象程序
设计的思想,加深对面向对象程序设计特性的理解。
2.学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全
过程。
3.进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、文件和网络输入
输出流编程、Java数据库编程等。
4.通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力。
2.设计总体要求:
1.问题的描述与程序将要实现的具体功能。
2.程序功能实现的具体设计思路或框架,并检查流程设计。
3.代码实现。
4.程序测试。
5.设计小结(包括)
3.实现目的:
本软件是一个实用聊天程序。项目要实现以下目标:
1)建立服务器端和客户端并进行连接;
2)利用线程设计结构合理,运行效率较高的聊天室;
3)实现写消息,发消息,回复,查看聊天记录等功能;
1.系统任务描述
本系统是基于java开发的聊天室。如有用户聊天,服务器会显示出聊天信息。服务器端和客户端可以互相发送和接收信息,还可以查看聊天记录。如果服务器还没有启动,则客户端是不可以利用聊天室收发信息的。如果在运行过程中,服务器断开则系统会有提示。
2.系统功能分析
系统的功能需求
聊天室程序通常需要完成以下一些基本功能:
A.登录聊天室;
B.启动服务器;
C.关闭服务器;
D.用户之间的聊天;
E.退出聊天室。
3.系统可行性分析
从技术方面来看,java语言的优点主要表现在:简单、面向对象、多线程、安全性等方面。(1)简单性
Java实现了自动的功能收集,简化了内存管理的工作,这使程序设计更简便,同时减少了出错的可能。
(2)面向对象
Java提供了简单的类机制和动态的架构模型。对象中封装了它的状态变量和方法。很好地实现了模块化和信息隐藏;而类则提供了一类对象的原型,通过继承和重载机制,子类可以使用或重新定义父类或超类所提供的方法,从而既实现了代码的复用,又提供了一种动态的解决方案。
Java同样支持继承特性,java的类可以从其他类中继承行为,但java只支持类的单重继承,即每个类只能从一个类中继承。
Java支持界面,界面允许程序员定义方法但不立即实现,一个类可以实现多个界面,利用界
面可以得到多重继承的许多优点而又没有多重继承的问题。
(3)多线程
多线程使应用程序可以同时进行不同的操作,处理不同的事件。在多线程机制中,不同的线程处理不同的任务,他们之间互不干涉,不会由于一处等待影响其他部分,这样容易实现网络上的实时交互操作。多线程保证了较高的执行效率。
(4)安全性
用于网络、分布环境下的java必须要防止病毒的入侵,java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止了程序员使用欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。
第三部分:系统设计
系统设计是本系统开发的重要阶段,它直接影响目标系统的质量,是整个开发工作的核心。系统设计阶段主要任务是:在系统分析提出的逻辑模型的基础上,科学合理地进行物理模型设计。
1.系统总体结构设计
2.系统主体的处理流程
3.系统流程逻辑
第四部分:代码分析
本系统的IP为本机的网络虚拟IP(127.0.0.1),在任何电脑上都能用,端口号设置为9000。注意:客户端只有在服务端开启的情况下才能正常聊天。
1.服务器端部分代码
public TestServer_zmx() //主构造方法及布局
ServerSocket ss=new ServerSocket(9000);//服务器建立端口号9000
Socket s1 = ss.accept();//服务器监听是否有连接
class MyAction implements ActionListener //处理发送按钮的类
class MyThreadWriter extends Thread //处理输出流类
class MyThreadRead extends Thread {//处理输入流读入类
class qingping implements ActionListener //处理清屏类
class xiaoxijilu extends JFrame implements ActionListener //处理消息记录类
2.客户端部分代码
public TestClient_zmx() //主构造方法及布局
Socket s1 = new Socket("localhost",9000);//建立与服务器的连接,为本地主机,9000号端口class MyAction1 implements ActionListener //处理发送按钮的类
class MyThreadWriter1 extends Thread //处理输出流类
class MyThreadRead1 extends Thread //处理输入流读入类
class qingping1 implements ActionListener //处理清屏类
class xiaoxijilu1 extends JFrame implements ActionListener //处理消息记录类
第五部分:系统的具体实现
界面是系统之间最直接的交互界面,界面的友好性体现了软件设计的质量,并在很大的程度上决定了软件是否成功。
界面设计
(1).服务器端的启动界面