1、目录 一、设计题目 1 二、设计目的 1 三、设计原理及方案 1 1使用的软件工具和环境 1 2需求分析与概要设计 1 3详细设计和关键问题 2 四、实现效果 5 五、设计体会 7 参考文献 8 1 一、设计题目一、设计题目 网络监听程序 二、设计目的二、设计目的 进一步巩固 Java 基础理论和知识,加深 Java 面向对象特性的理解,以及加 强多线程的应用, 并通过对网络编程的一些基础应用来提高利用面向对象的程序 设计方法解决问题的能力,并锻炼利用开发工具实现 Java 应用软件的基本技能。 三、设计原理及方案三、设计原理及方案 1使用的软件工具和环境 该程序运行在 windows XP
2、系统下,并利用 Netbeans 6.0 来开发和调试,其 中 jdk 版本为 jdk1.6。 2需求分析与概要设计 (1)系统需求 本课题要求使用图形用户界面。包括服务器端和客户端(多个)两个组成部 分,其中,服务器端负责侦听客户端的登录请求消息,当接收到登录的消息,则 将对应的灯变绿,否则显示红色,并实时地将在线客户端的消息发送给其它在线 客户端。客户端负责发出登录消息,并接收从服务器回传的其它客户端的消息, 并以灯的变绿或红显示出来。 (2)系统功能描述 当客户端输入用户名,并点击“登录”按钮后,它便与服务器建立了一个 socket 会话。通过此 socket 会话,让两者之间通过信息的
3、交流来达到实时响应的 效果。此刻,在服务器端保存有多个 socket 会话,每个都关联一个客户端进程。 (3)系统结构描述 由于程序要求较为简单,因此完全可以在一个包内实现其基本功能。这个包 里存在 4 个类,server,clientA,clientB,clientC。 Server 类:利用多线程来监听多个客户端,并将对应客户端的灯变绿。同时回传 消息,告知即时在线客户端。 2 ClassA(B、C):实现根据正确的用户名登录服务器,并接收服务器发回的消息, 并改变对应的灯的颜色。 具体包图如图 1 所示。 tcp serverclientAclientBclientC 图 1 包图 3详
4、细设计和关键问题 首先,对于程序的分解实际上,只有两个主要的类,即 server 类和 client 类, 因为客户端的行为基本一致,故而其代码也基本相同,只须将注意力放在这两个 方面即可。 s e r v e r + c a n W a i t e r + c a n A d a p t e r + s t a r t S e r v e r ( ) + a c c e p t C o n n e c t ( ) + m a i n ( ) c l i e n t A + p o r t + s e r v e r + c a n W a i t e r + j L o g i n A c t i o n P e r f o r m e d ( ) + f o r m W i n d o w C l o s i n g ( ) + m a i n ( ) 图 2 server 类 图 3 clientA 类 对于 server 类,如图 2 所示,因为要完成监听多个客户端的任务,所以必须 用到多线程,为每个已登录 client 分配一个线程,并且处于循环