广州大学华软软件学院 课程设计指导书
广州大学华软软件学院 软件工程系
《JAVA网络编程技术(SS0013)》课程设计
Java Socket网络编程
-------电子白板即时通信程序设计
课程设计指导书
2011 -2012学年 第一学期
课程名称: 课程代码:
JAVA网络编程技术
SS0013
学分:
计划学时: 68 4
课程性质: 必修、考试 课程负责人: 邹立杰 授课老师:
邹立杰
面向专业:软件工程
班级(小班代码):
姓名: 陈甜甜 学号: 1040112179
广州大学华软软件学院
South China Institute of Software Engineering, GuangZhou University
课程设计指导书 Java网络编程技术 课程代码 SS0013
1、 课程设计题目:
Java Socket网络编程
-------电子白板即时通信程序设计
2、 课程设计要求:
通过本课程设计深刻理解Java网络编程的基本方法和技巧 本课程设计所要实现的电子白板程序主要应用的编程技术: (1) Java SWing GUI 界面设计技术 (2) Java Socket 网络编程技术
(3) Java ObjectInputStream 和 ObjectOutputStream 类的实例发送和接收对象的
功能
(4) 实现Serializable接口编写功能类,实现该类对象的网络发送和接收。
3、 程序基本功能:
(1)服务器端:提供提供白板图形和文字消息的转发转发功能,把当前的登录到服务器上的所有客户端的电子白板内容群发转发给在线的每个客户,以及群发转发即时文字消息。 (2)服务器端保存自第一个用户登录后的所有白板内容。
(3)程序的客户端通过 Java Socket 网络协议和服务器实现网络通信,接收服务器端发送过来的白板内容消息并且绘制在该客户端的白板客户区内,接收显示文本消息;绘制白板并发送到服务器端,为所有客户端共享。
(4)客户端登录时,发送登录消息,服务器端把当前保存的白板内容发送到该客户端,该客户端收到由服务器发送来的白板内容绘制到客户区。
(5)电子白板图形有圆形、填充圆形、矩形、填充矩形、圆角矩形、填充圆角矩形、直线和随机曲线等。
4、 GUI 设计
GUI设计使用SUN公司SWing可视JavaBean组件技术或IBM公司的SWT可视JavaBean组件技术。
第 2 页
课程设计指导书 Java网络编程技术 课程代码 SS0013
GUI设计界面 客户端:
客户端使用SWing组件技术进行GUI界面设计 1)参考界面 客户端登陆:
客户端主程序界面:
第 3 页
课程设计指导书 Java网络编程技术 课程代码 SS0013
服务器端:服务器端为一个控制台应用程序,主要功能是传递客户端消息。
5、主要代码:
(1)Serializable接口应用:
在服务器端通过ObjectInputSream 和ObjectOutputStream以及Socket类传送dog类的对象到客户端,在客户端接收由服务器端传送过来的dog对象,并输出器属性。
时序图:
类图:
第 4 页
课程设计指导书 Java网络编程技术 课程代码 SS0013
1)服务器端代码
import java.io.*; import java.net.*;
interface myDog extends java.io.Serializable { void setAge(int a); int getAge(); void setName(String n); String getName(); void run(); }
class dog implements myDog { private int age; private String name; public void setAge(int a) { age=a; } public int getAge() { return age; } public void setName(String n) { name = n; } public String getName() { return name; } public void run() { System.out.println(\); } }
public class OServer { public static void main(String[] args) throws IOException { dog d = new dog(); d.setAge(10); d.setName(\); System.out.println(d.getAge()); System.out.println(d.getName()); d.run(); ServerSocket s = new ServerSocket(8888); Socket ss = s.accept(); OutputStream out = ss.getOutputStream();
第 5 页