电子白板《Java网络编程技术》

上传人:ni****g 文档编号:486554567 上传时间:2023-09-27 格式:DOC 页数:49 大小:1.33MB
返回 下载 相关 举报
电子白板《Java网络编程技术》_第1页
第1页 / 共49页
电子白板《Java网络编程技术》_第2页
第2页 / 共49页
电子白板《Java网络编程技术》_第3页
第3页 / 共49页
电子白板《Java网络编程技术》_第4页
第4页 / 共49页
电子白板《Java网络编程技术》_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《电子白板《Java网络编程技术》》由会员分享,可在线阅读,更多相关《电子白板《Java网络编程技术》(49页珍藏版)》请在金锄头文库上搜索。

1、广州大学华软软件学院 软件工程系JAVA网络编程技术(SS0013)课程设计Java Socket网络编程-电子白板即时通信程序设计 课程设计指导书2011 -2012学年 第一学期课程名称:JAVA网络编程技术 课程代码:SS0013计划学时: 68 学分:4课程性质: 必修、考试 面向专业:软件工程课程负责人:邹立杰授课老师:邹立杰班级(小班代码): 姓名: 陈甜甜 学号: 1040112179 广州大学华软软件学院South China Institute of Software Engineering, GuangZhou University1、 课程设计题目:Java Socket

2、网络编程 -电子白板即时通信程序设计2、 课程设计要求:通过本课程设计深刻理解Java网络编程的基本方法和技巧本课程设计所要实现的电子白板程序主要应用的编程技术:(1) Java SWing GUI 界面设计技术(2) Java Socket 网络编程技术(3) Java ObjectInputStream 和 ObjectOutputStream 类的实例发送和接收对象的功能(4) 实现Serializable接口编写功能类,实现该类对象的网络发送和接收。3、 程序基本功能:(1)服务器端:提供提供白板图形和文字消息的转发转发功能,把当前的登录到服务器上的所有客户端的电子白板内容群发转发给在

3、线的每个客户,以及群发转发即时文字消息。(2)服务器端保存自第一个用户登录后的所有白板内容。(3)程序的客户端通过 Java Socket 网络协议和服务器实现网络通信,接收服务器端发送过来的白板内容消息并且绘制在该客户端的白板客户区内,接收显示文本消息;绘制白板并发送到服务器端,为所有客户端共享。(4)客户端登录时,发送登录消息,服务器端把当前保存的白板内容发送到该客户端,该客户端收到由服务器发送来的白板内容绘制到客户区。(5)电子白板图形有圆形、填充圆形、矩形、填充矩形、圆角矩形、填充圆角矩形、直线和随机曲线等。4、 GUI 设计GUI设计使用SUN公司SWing可视JavaBean组件技

4、术或IBM公司的SWT可视JavaBean组件技术。GUI设计界面客户端:客户端使用SWing组件技术进行GUI界面设计1)参考界面客户端登陆: 客户端主程序界面:服务器端:服务器端为一个控制台应用程序,主要功能是传递客户端消息。5、主要代码:(1)Serializable接口应用:在服务器端通过ObjectInputSream 和ObjectOutputStream以及Socket类传送dog类的对象到客户端,在客户端接收由服务器端传送过来的dog对象,并输出器属性。时序图:类图:1)服务器端代码import java.io.*;import .*;interface myDog exten

5、ds 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() retu

6、rn name;public void run() System.out.println(I can run fast!);public class OServer public static void main(String args) throws IOException dog d = new dog();d.setAge(10);d.setName(Tom);System.out.println(d.getAge();System.out.println(d.getName();d.run();ServerSocket s = new ServerSocket(8888);Socket

7、 ss = s.accept();OutputStream out = ss.getOutputStream();BufferedOutputStream b = new BufferedOutputStream(out);ObjectOutputStream oo = new ObjectOutputStream(b);oo.writeObject(d);oo.flush();2)客户端代码import java.io.*;import .*;public class OClient public static void main(String args) throws IOExceptio

8、n,ClassNotFoundException Socket s=new Socket(127.0.0.1,8888);InputStream in=s.getInputStream();BufferedInputStream input=new BufferedInputStream(in);ObjectInputStream inn=new ObjectInputStream(input);dog d=(dog)inn.readObject();System.out.println(client:+d.getAge();System.out.println(client:+d.getNa

9、me();d.run();编译运行:服务器端:客户端:运行结果可以看出,从服务器发送的客户端的dog对象,属性被取出、输出。结果正确。(2)简易网络画板电子白板程序1) 功能:在服务器端实现简易画板,在客户端同步服务器端的画板2) 运行截图:服务器户、客户端界面: 3)系统类图:4)实现:a. 首先封装一个ranomLine类,作为用鼠标划线的轨迹的记录器,并封装实现自动划线的方法:其中有一个向量Vector域,用来记录鼠标划线所包含的点的对象,paint(Graphics g)方法是实现遍历Vector中的点,并将这些点画出。import java.io.*;import java.util

10、.*;import java.awt.*;public class randomLine implements Serializable Vector points=new Vector();Color color=null;int x0,y0,x1,y1;Point point,start,end;public randomLine(Color c)this.color=c;public void setPoints(int x,int y)point=new Point(x,y);this.points.add(point);public void paint(Graphics g)g.s

11、etColor(color);Enumeration allPoints=points.elements();start=(Point)allPoints.nextElement();x0=(int)start.getX();y0=(int)start.getY();while(allPoints.hasMoreElements()end=(Point)allPoints.nextElement();x1=(int)end.getX();y1=(int)end.getY();g.drawLine(x0, y0, x1, y1);x0=x1;y0=y1;randomLine类时序图:b.服务器端

12、:import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import .*;public class myPanel extends JPanelprivate randomLine ranLine=new randomLine(Color.red);private ServerSocket s;private Socket ss;private ObjectOutputStream output;private OutputStream os ;private BufferedOutpu

13、tStream b ;private Graphics g;public int x0,y0,x1,y1;public myPanel()setBounds(0,0,400,300);setBackground(Color.white);addMouseMotionListener(new mouseAction();addMouseListener(new mousemovpress();this.validate();new myThread().start();public void paint(Graphics g)class mouseAction extends MouseMotionAdapterpublic void mouseDragged(MouseEvent e)g=getGraphics();g.setColor(Color.red);x1=e.get

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 汽车技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号