《Flash程序设计》
课程设计报告
课程名称: Flash程序设计
实验项目名称:4屏flash焦点图上下切换效果程序
院系: 物理与电子信息学院
学号: 100804026
姓名: 饶本健
班级: 10数字媒体
日期: 20## 年 12 月
实验地点:
课程设计成绩:
实验指导教师签字:
4屏flash焦点图上下切换效果程序
一、课程设计目标
此次课程设计的目的是通过对文本、图像、音频和视频媒体的制作方法和工具的学习,使自己能够独立地运用相关软件进行图像处理和动画制作,并在此次实践中检验自己的掌握程度。
1、运用动画制作软件Flash设计制作动画。
2、具体目的是:Flash作品要求做一个动画短片,主题自定,内容健康向上。要求时长30秒以上,使用按钮、脚本、遮罩、引导动画、背景音乐。
Windows 7
Flash cs3.0
在这个flash中我需要建立若干图层,一步步建立背景、个人图片,制造出环境效果;需要人物照片和数字的原件,需要在人照片的图层上建立引导层;;需要创建补间动画来实现上下变化照片等效果;需要添加按钮来开始动画。
二、课程设计内容
1、使用Flash cs3.0设计一个人物焦点图片上下变换。在其中建立图片、数字、动作、音乐等图层
2、利用flash制作出简单的效果
三、过程设计
利用不同的图片,在变换数字的角度下观察到上下不同的切换效果
1、 设计思路
第一步: 首先准备要滚动的图片,将4张图片导入到flash库中,分别在库中右击它们,选择属性,将“使用导入的JPEG品质”前的钩去掉,这样文档的体积会小很多。点击 插入>新建元件,新建一图形元件,将库的图片拖到舞台上,图片上下拼接好。
第二步:回到主场景,将图片元件拖到舞台上,打开对齐面板,选择相对舞台,把图片变成影片剪辑。
第三步:依次加入1、2、3、4四个图层用来设置数字做出的影片剪辑添加数字的动作事件 stop()
图层 数字影片剪辑
第四步:图层L1-L12,用来制作出不同的数字按钮,控制好线条的颜色,单击数字时颜色的变化
第五步:建立新的图层代码层,写下制作的全部代码
下面是一下重要代码解释
1,while (i <= slideNum) {if (slideOver == i) { if (this["slideMc" + i]._currentframe < this["slideMc" + i]._totalframes) {this["slideMc" + i].nextFrame(); targety = (-imgHeight) * (i - 1);}} else if (this["slideMc" + i]._currentframe > 1) {this["slideMc" + i].prevFrame(); } 这些循环语句用来增加变量数字, 2,MovieClip.prototype.imgRollOver = function () ;mouseOver = true;};MovieClip.prototype.imgRollOut = function () {mouseOver = false;};MovieClip.prototype.btnRollOver = function () {slideOver = this._name.slice(7);mouseOver = true;}; MovieClip.prototype.btnRollOut = function () { mouseOver = false;};用来判断影片剪辑的是否上下移动
第六步:把音乐导入到库里建立新的图层“音乐”。
测试影片,观察效果
当鼠标点击到数字1、2、3、4时,你看到的图片就会随着数字的改变而改变
四.源代码
function slideMove() {
this.slideImg._y = this.slideImg._y + (speed * ((targety - 1) - this.slideImg._y));
}
function slideSystem() {
var i = 1;
while (i <= slideNum) {
if (slideOver == i) {if (this["slideMc" + i]._currentframe < this["slideMc" + i]._totalframes) {this["slideMc" + i].nextFrame();
targety = (-imgHeight) * (i - 1);
}
} else if (this["slideMc" + i]._currentframe > 1) {
this["slideMc" + i].prevFrame();
}
i++;
}}
var slideNum = 4;var frameTimer = 100;
var speed = 0.28;var imgHeight = (this.slideImg._height / slideNum); var slideOver = 0; var timer = 0;
MovieClip.prototype.imgRollOver = function () {
mouseOver = true;
};
MovieClip.prototype.imgRollOut = function () {
mouseOver = false;
};
MovieClip.prototype.btnRollOver = function () {
slideOver = this._name.slice(7);
mouseOver = true;
};
MovieClip.prototype.btnRollOut = function () {
mouseOver = false;
};
mouseOver = false;
this.onEnterFrame = function () {
slideMove();
slideSystem();
if (mouseOver == false) {
if (((timer++) % frameTimer) == 0) {
if (slideOver == slideNum) {
slideOver = 0;
}
slideOver++;
}
}
};
五 学习心得
在整个制作过程中,总是被一个又一个难题所困扰。但是在完成时,却是无比欣喜与快乐。在克服制作过程中的难题后,感觉自己的制作技巧一点一点的提高。Flash的制作相对来说比其他制作软件更加容易上手和熟知。完全可以靠平日的练习来提高。
Flash动画制作是一件很费时间与精力的事情。但只要全身心投入,所有的困难都能克服。要制作一个比较理想的Flash动画是一件很费时间与精力的事情。因为设计Flash动画需要多方面的因素来支撑,如:激情与灵感、细心与勤奋等等。我能够顺利完成Flash动画,正是有这些不可或缺的因素在支持着。冥冥之中有一种无形的力量在牵引着我。正是这种力量给了我动力,让我勇往直前的面对挑战。我自己始终坚持一种信念“没有做不到,只有想不到”。只要我充分发挥自己的主观能动性,就一定能设计出一个优秀的Flash动画。
局域网聊天系统
Java程序设计课程设计报告书
——局域网聊天系统
1 开发背景:
当今很多单位都组建了自己的局域网,有些单位不允许员工上班时网上聊天,故在局域网的出口网关上只开通80端口,这给一些工作时需要交流信息或传输文件的工作人员带来不便,他们很需要一个能在局域网内交流信息的聊天软件。
还有现在大学生宿舍电脑的普及率很高,他们中有不少只接上了学校的局域网,而没有缴费上Internet网,因此他们也很需要一个局域网内的聊天软件来交流信息。
3 开发目的:
插上网线即可与同一局域网内用户聊天
22 功能要求:
i.
ii.
iii.
iv.
打开程序自动搜索好友无需登录 能够实现点对点单聊 能够实现文件传输 能动态更新在线用户列表
三、系统设计
3.1 设计思想
整个系统分为服务器和客户端,服务器端维护各个客户端的信息。客户端的所有信息发往服务器端,再由服务器进行消息的分析处理并做出相应的控制,服务器端是所有信息的中心。
服务器端可以查看所有用户的聊天记录,监控所有用户的状态,发出用户上线、离线提示等公告,客户端则提供接收公告的功能。
本课程设计按照系统的具体功能要求,首先应用Socket编程创建客户端和服务器端,每多个客户端服务器端就会相因的创建一个线程,它们之间通过这个连接来实现数据通信;然后在客户端设置一个监听器,用于监听服务器发来的消息。并根据消息做出不同的动作。
3.2系统功能
该系统实现了用户之间的点对点单人聊天,在线用户之间的群聊。为了加强之间的信息交流,还实现了用户之间文件传输、语音聊天。在客户端和服务器端都可以查看历史消息、保存消息、清空消息。为了监控用户之间的状态,服务器还可以实现踢掉用户的功能,同时用
-1-
局域网聊天系统
户时间文件传输的信息都会在服务器上显示。
3.3系统架构
1)选择传输控制协议TCP,使用Java的Socket编程机制,分别建立客户端与服务器端、语音传输使用的是UDP控制协议;
2)分别设计客户端与服务器端的界面,并使用Java应用程序用户界面的开发工具包Swing进行窗体界面的布局,以及实现部分窗口事件的相应。
3.4 模块设计
3.4.1 服务器端:
主要实现向各个客户端发布系统消息,接受来自客户端的各种信息并分别处理。具体功
①连接控制: 包括启动服务器、断开服务器以及断开某个客户端的连接;
②管理作用: 包括对参与聊天者的昵称进行修改以及向所有或某个客户端发送消息,
维护一个IP地址和昵称所对应的哈希表,以便定位到正确的客户端,且
有权强制修改用户昵称;
③刷新列表: 在有用户登陆或离开的时候实时更新列表,并将信息反馈到各个客户端; ④登陆信息: 检查用户是否已登陆,如登录,发消息通知所有用户。同时刷新在线用
户列表;
⑤聊天记录: 能保存聊天记录,实现消息的保存、清空以及查看等功能;
⑥消息处理: 解析客户端与服务器端的消息交互类型,并做出相应处理,能够找到消
息所对应的接收端。
3.4.2 客户端:
主要实现向服务器端发布消息,并且对来自服务器的消息做出相应的响应。具体功能如
①连接功能: 输入服务器地址,实现登录及断开功能
②登录设置: 登录时,发送消息使服务器端获得相关登录信息,昵称及IP地址记录到
服务器端维持的哈希表,断开后发送消息使IP地址及昵称从哈希表中删
除;
③监听作用: 实现对服务器发送过来的消息进行监听的功能;
④消息处理: 接收由服务器端发送来的信息,并做出相应的响应;
⑤聊天记录: 实现聊天记录的保存、清空以及查看等功能;
⑥消息处理: 相应从服务器端接收到的消息交互类型,实现用户与用户之间的信息交
互和文件交互;
⑦传输进度: 使用进度条直观地表示用户与用户间文件交互的进度。
⑧文件传输: 实现客户端之间的文件发送与文件的接收功能。
⑨语音聊天: 实现客户端之间的语音聊天功能。
-2- 能如下: 下:
局域网聊天系统
四、详细设计与实现
4.1 服务器端
4.1.1 服务器
该段功能由Server.java文件中的Server类实现,具体实现过程如下:
①启动服务并接收连接:服务器的任务首先是建立一个由IP地址到昵称的映射的哈希表,用于存放用户的基本信息;启动服务器后,等候建立一个连接,然后用这个连接产生的Socket创建一个Client,同时检查该用户是否已存在哈希表中,若以存在,则提示该次连接请求失败,从而实现限制IP的目的;若不存在,则将该IP地址及其昵称或默认昵称的映射添加到哈希表中,接着服务器端向所有的用户发送管理信息,提示有新的用户登录,并且将刷新后的用户列表同时发送到各个客户端。
②关闭服务:服务器端遍历哈希表,关掉每一个用户对应的Socket,之后,关闭服务Server。
③管理作用之发送消息: 服务器端解析由客户端发送的请求,若控制字以“SPECIAL”开头,则通过控制字后的昵称从哈希表中找到对应的用户,实现服务器端到客户端的点对点消息交互;若不是以“SPECIAL”开头,则实现消息的广播发布。
④管理作用之修改昵称:首先判断新的昵称是否在哈希表中存在,若已存在则给出错误提示,否则通过该用户的旧昵称在哈希表中查找到该用户,并用欲修改的昵称替换掉原昵称;接着刷新服务器端的用户列表显示,最后刷新客户端的用户列表显示。
⑤管理作用之断开连接:若要断开某个客户端与服务器的连接,首先向该用户发送被管理员请出系统的信息,然后通过该用户的昵称从哈希表中找到对应socket、service及IP地址等信息,再从每一项信息对应的列表里删除该用户的信息,最后关闭该用户的socket,同时刷新服务器端以及各个客户端的用户列表显示。
⑥在服务其中,需要同时处理多个客户端的请求,因此此处用到了多线程处理机制。在服务器程序里创建单个Server Socket,并调用accept()来等候一个新连接,一旦accept()返回,就取得结果获得的socket,并用它新建一个线程,令其只为那个特定的客户端服务,然后再调用accept(),等候下一次新的连接请求。
4.1.2 界面设计
该段功能由ServerFrame.java文件中的ServerFrame类实现,具体实现过程如下:
窗口布局:服务器端窗口使用了BorderLayout事务管理器,把整个容器分成了五个区域:North、South、East、West和Center,每个区域放置一个面板,每个面板又分别使用不同的事务管理器放置其他组件,如按钮、标签、文本框等,各个组将构成了一个完整的服务器端界面。
① 事件处理:通过Java的授权事件模型,针对组件send、Button1~Button8,通过
addXXXListener(主要运用了addActionListener)方法注册监听器,并且实现ActionListener接口中的actionPerformed方法,这样,当组件触发了相应类型的事件后,此事件就会被传送给已注册的监听器,事件监听器负责处理事件。至此,
-3-
局域网聊天系统
实现了窗口对以下几个事件的响应:发送消息、保存消息、清空消息、查看历史消
4.1.3功能函数
该段功能由ChatTookit.java文件中的ChatTookit类实现,具体实现过程如下:
①函数getAllNickname:该函数实现从IP地址——昵称对照哈希表中得到所有的昵称的功能,函数原型如下:
public static String getAllNickname(Hashtable ip2nickname)
②函数sendInfoToAll:该函数实现遍历所有已连接的客户端,并且发送输入的信息的功能,函数原型如下: public static void sendInfoToAll(ArrayList onLineUsers,String info) throws IOException
③函数sendInfo:该函数实现给某个特定用户发送一条信息的功能,函数原型如下:
public static void sendInfo(Socket client,String info) throws IOException ④函数getIP:该函数实现从socket中得到用户的ip地址的功能,函数原型如下:
public static String getIP(Socket socket)
⑤函数getIP:该函数实现从一个hashtable中根据value得到key的功能,函数原型如下: public static String getIP(Hashtable ip2nickname,String nickname)
⑥函数getNickname:该函数实现从socket和IP地址——昵称对照hashtable中得到用户的昵称的功能,函数原型如下: public static String getNickname(Socket socket,Hashtable ip2nickname) ⑦函数updateOnLineUsersList:该函数实现将在线用户列表的显示清空,并用最新的用户列表更新客户端的用户列表,只显示昵称,函数原型如下:
public static void updateOnLineUsersList(List onLineUsersList,String
allNickname)
⑧函数updateOnLineUsersList:该函数实现将在线用户列表的显示清空,并用最新的用户列表更新服务器端的用户列表:显示的是ip:昵称,函数原型如下:
public static void updateOnLineUsersList(List onLineUsersList,Hashtable ip2nickname)
⑨函数getSocketByIP:该函数实现根据用户ip地址得到该用户所在的socket功能,函数原型如下:
public static Socket getSocketByIP(ArrayList onLineUsers,String ip)
⑩函数getServiceByIP,该函数实现根据用户ip地址得到该用户所在的service功能,函数原型如下:
public static Service getServiceByIP(ArrayList allService,String ip)
4.1.4 信息处理
客户端几乎所有信息都是交给服务器的Service负责接受这些信息,并且做出相应的处
-4- 息、启动服务、关闭服务、断开连接、修改昵称。
局域网聊天系统
理。该段功能由Service.java文件中的Service类实现,实现过程如下:
该类仍然是使用了Java的多线程处理机制,对为每一个登录的用户初始化一个Service,接着服务器端接收信息,将用户发过来的信息显示在服务器端面板上,并遍历发送给所有的客户端。此时,进行消息类型的判断:
①若控制字以“NICKNAME:”开始,则表示该用户发出了一个修改昵称的请求,服务器端需要判断该昵称是否在哈希表中存在,如若存在,则提示用户不能修改为此名字,否则更新该用户的资料,并且刷新服务器端和客户端的用户列表。
②若控制字以“SPECIAL:”开头,则表示该用户发出了一个需要同某一用户私聊的请求,此时服务器端通过控制字头的后的昵称,找到接收端用户的信息,并对其发出私聊的信息,实现点对点的消息交互。
③若控制字以“FILE:”开始,则表示该用户发出了一个对某一客户端发送文件的请求,此时,服务器端同样通过控制字头后的昵称,查找到对应的接收端用户的信息,并将该用户的IP地址传递给发送端,并在服务器端显示发送端想要对接收端传输文件的信息。
④若控制字以“FILEFINISH:”开始,则表示文件传输完毕,此时服务器端发出文件传输完毕的信息。
⑤若控制字以“FILELENFGTH:”开始,则表示传递的是文件的长度。
⑥若控制字以“VOICE:”开始,则说明是语音聊天的请求。后面的信息解析和文件传输请求是一样的原理。
⑦若控制字以“VOICEEND:”开始,则说明语音聊天结束,此时客户端的语音聊天两个相关的进程结束。
⑧当该用户注销时,服务器端更新在线用户列表以及IP地址—昵称的哈希映照表,并且刷新服务器端同客户端的用户列表显示,同时发出该用户离开的消息。
4.2客户端设计与编码
由于服务器端需要一次处理多个客户端的请求,所以客户端的设计均使用了Java的多线程处理机制实现。
4.2.1 客户端程序
该段功能由Client.java文件中的Client类实现,具体实现过程如下: ①新建客户端:初始化该客户端的监听器、套接字、在线用户列表以及发送消息的String流,并且将客户端连接状态设置为真。初始化一个客户端时,需要用到该客户端的IP地址、端口号、在线用户列表以及聊天内容列表等信息。
②建立监听:创建一个BufferedReader以及一个PrintStream之后,再通过多线程机制③发送消息:客户端循环发送消息给服务器,直到发送的String流遇到结尾字符。 建立对服务器发来消息进行监听的监听器Listener。
4.2.2 界面设计
-5-
局域网聊天系统
该段功能由ClientFrame.java文件中的ClientFrame类实现(程序代码请见附录),具体
① 窗口布局:服务器端窗口使用了BorderLayout事务管理器,把整个容器分成了五个
区域:North、South、East、West和Center,每个区域放置一个面板,每个面板又分别使用不同的事务管理器放置其他组件,如按钮、标签、文本框、进度条等,其中文件传输进度条初始化为不可见,各个组将构成了一个完整的客户端界面。
② 事件处理:通过Java的授权事件模型,针对组件TextField、Button1~Button6,
Button8-Button12,通过addXXXListener(主要运用了addActionListener)方法注册监听器,并且实现ActionListener接口中的actionPerformed方法,这样,当组件触发了相应类型的事件后,此事件就会被传送给已注册的监听器,事件监听器负责处理事件。至此,实现了窗口对以下几个事件的响应:用户登录、退出、保存消息、清空消息、查看历史消息、文件发送、文件接收、文件开始传输、修改昵称、语音聊天、拒绝语音、结束语音以及消息发送。 实现过程如下:
4.2.3 文件发送
该段功能主要实现文件发送,默认端口为9900,由FileSender.java文件中的FileSender类实现,具体实现代码如下:
Socket s=new Socket(InetAddress.getByName(this.descIP),this.port); File file =new File(fileName);
FileInputStream fis=new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
BufferedOutputStream bos=new BufferedOutputStream(s.getOutputStream()); byte[] buff = new byte[1024];
int i = 0;
ClientFrame.jLabel5.setText(file.getName());
ClientFrame.bar.setMinimum (0);
ClientFrame.bar.setMaximum((int)(file.length()/1024));
while ((i = bis.read(buff, 0, buff.length)) != -1)
{
count+=buff.length;
ClientFrame.bar.setValue ((int)(count)/1024);
bos.write(buff,0,i);
bos.flush();
}
bis.close();
s.close();
4.2.4 文件接收
该段功能主要实现文件接收,默认端口为9900,由FileReceiver.java文件中的FileReceiver类实现,程序代码如下:
BufferedOutputStream bos=null;
BufferedInputStream bis=null;
-6-
局域网聊天系统
try
{
ss=new ServerSocket(port);
Socket s=ss.accept();
bos=new BufferedOutputStream(new FileOutputStream(fileName));
bis=new BufferedInputStream(s.getInputStream());
byte[] buf=new byte[1024];
int i=0;
while((i=bis.read(buf,0,1024))!=-1)
{
count+=1024;
ClientFrame.bar.setValue ((int)(count)/1024);
bos.write(buf,0,i);
bos.flush();
}
bis.close();
s.close();
bos.close();
ss.close();
JOptionPane.showMessageDialog(null, "接受文件成功!", "提示
",JOptionPane.INFORMATION_MESSAGE);
ClientFrame.bar.setVisible(false);
ClientFrame.jLabel5.setText("");
ClientFrame.filelength=0;
}
catch (Exception ex)
{
ex.printStackTrace();
}
4.2.5 消息监听
该类主要实现对服务器发送的消息进行监听的功能,由Listener.java文件中的Listener① 使用缓冲输入流、在线用户列表以及聊天记录列表初始化Listener对象的相关属性,
② 循环接收从服务器发送来的信息,直到输入流读到了String流的末尾,接着开始判断消息的类型。
③ 若控制字以“NICKNAME”开始,则证明需要更新用户列表,此时客户端进行相关操作。 ④ 如控制字以“FILEECFO”开始,则客户端需要通过控制字以后的字符获得目的端的IP地址。
⑤ 若控制字以“FLENGHTH”开头,则客户端可以获得需要传输的文件长度。
⑥ 若控制字以“FILELENFGTH:”开始,则表示传递的是文件的长度。
⑦ 若控制字以“VOICE:”开始,则说明是语音聊天的请求。后面的信息解析和文件传
-7- 类实现(程序代码请见附录),具体实现过程如下: 并启动多线程。
局域网聊天系统
输请求是一样的原理。
⑧ 若控制字以“VOICEEND:”开始,则说明语音聊天结束,此时客户端的语音聊天两个相关的进程结束。
⑨ 若控制字都不满足②—⑧的条件,则将该信息作为是交谈内容更新在聊天记录列表中。
4.2.5 语音发送
该类主要实现语音聊天对语音信息的采样编码处理并发送功能,由VoiceSend.java文件中的VoiceSend类实现,部分代码如下:
format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 8000F, 8, 1, 1, 8000F, true);
inInfo = new DataLine.Info(TargetDataLine.class, format); t = null; outInfo = new DataLine.Info(SourceDataLine.class,format); try{ } tdLine = (TargetDataLine)AudioSystem.getLine(inInfo); tdLine.open(format, tdLine.getBufferSize()); tdLine.addLineListener(this);
UDPClientSocket=new DatagramSocket(3000);
ClientPacket=new
DatagramPacket(dataBuf,inBytes,InetAddress.getByName(this.ip),3333);
DPClientSocket.send(ClientPacket);
for(int i=0;i<dataBuf.length;i++) dataBuf[i]=0; UDPClientSocket.close(); UDPClientSocket=null;
4.2.6 语音接收
该类主要实现语音聊天对接收到的语音信息解码并播放,由VoiceReceive.java文件中的VoiceReceive类实现,部分代码如下:
format = new AudioFormat(AudioFormat.Encoding.PCM_UNSIGNED, 8000F, 8, 1,1, 8000F, true);
inInfo = new javax.sound.sampled.DataLine.Info(TargetDataLine.class, t = null; format);
outInfo = new DataLine.Info(SourceDataLine.class,format);
Clip clip = (Clip) AudioSystem.getLine(dlInfo);
clip.open(format,bytes,0,bytes.length); clip.start();
UDPClientSocket=new DatagramSocket(3333); ClientPacket=new DatagramPacket(dataBuf,BUFSIZE);
-8-
局域网聊天系统
UDPClientSocket.receive(ClientPacket); UDPClientSocket.close(); UDPClientSocket=null;
五、运行结果
5.1 客户端登陆
5.2 服务器实现其管理功能 ①向所有客户端发送消息
-9-
局域网聊天系统
③强制修改某个客户端的昵称
5.3 客户端群聊
-10-
局域网聊天系统
5.4 客户端与客户端间实现“私聊”
5.5 客户端与客户端之间实现文件传输功能 ①文件发送
-11-
局域网聊天系统
②件传输完成
六、结论与总结
6.1 课程设计结论
通过4.3运行结果,可以看出,该课程设计利用Java应用程序Socket编程实现了以下功能:使用Java的多线程处理机制建立两个套接字分别作为服务器端和客户端。
-12-
局域网聊天系统
在服务器端实现了向各个客户端发布系统消息,接受来自客户端的各种信息并分别处理的功能,可以控制客户端的连接以及对用户的管理作用,并且能够适时检测已登录用户的连接状态且刷新在线用户列表,更能够解析客户端与服务器端的消息交互并做出相应处理。
在客户端实现了向服务器端发布消息,并且对来自服务器的消息做出相应的响应,可以连接到特定的服务器,设置自己的昵称,并且能够监听服务器端发送过来的消息并做出相应的响应,更加能够与其他用户进行广播或私聊,以及实现文件传输,语音聊天等功能。
由此,可见,本次课程设计完成了最初的设计要求,即实现了类似P2P的QQ聊天系统,有相应的客户端和服务器端;服务器端可以记录当前在线客户列表,把客户列表发送给每一个在线客户,并实时刷新;任何一个用户都可以和任意其它的用户进行交互,即从在线客户列表中选择一个或一组其它用户通过服务器的转发彼此进行信息的交互以及文件的交互。
6.2 课程设计总结与体会
这个程序代码并不多,也不复杂,但程序编写中用到了JAVA中的Swing组件,面板容器,事件处理,线程的创建、同步,输入输出处理,内部类,异常处理,和网络通信的知识,所以我还是很有收获的。
在这次的课程设计中,我也用到了Socket 类和ServerSocket类,明白了它们是Java实现Socket通信的主要工具。创建 ServerSocket对象就创建了一个监听服务,创建一个Socket对象就建立了一个Client与Srever间的连接。明白了Java语言网络编程的可靠性,平台无关性。
总之通过本次实验,掌握了使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识解决实际问题的能力。提高面向对象程序设计的能力。
七、课程设计分工
: 服务器端程序和客户端程序的设计以及实现,包括服务器端的连接控制、管
理作用、刷新列表以及消息处理等功能的实现,客户端之间点对点信息交互
的实现,文件传输进度条的开发与实现,语音聊天的实现,搜集资料,补充
修改课程设计报告。
: 服务器端界面的设计和窗口事件的处理,实现服务器端和客户端的的登录信
息、聊天记录功能的实现,以及客户端消息处理功能的实现,文件传输机制
的设计与实现,课程设计报告资料的搜集与整理,撰写并修改课程设计报告。
: 客户端界面的设计和窗口事件的处理,以及实现客户端的连接功能、登录设
计以及监听功能,提出消息处理的基本模式,文件传输机制的设计与实现,
课程设计报告资料的搜集与整理,补充及修改课程设计报告。
虽然本次课程设计小组成员分工明确,但在过程中互帮互助,共同学习、攻克难关, 体现了作为一个团队应有的凝聚力,完成了本次课程设计。
-13-
局域网聊天系统
八、参考文献
[1] 《Java网络编程实例》Merlin Hughes Michael Shoffner 清华大学出版社
[2] 耿祥义 张跃平 清华大学出版社
[3] 《JAVA 程序设计》张 辉、潭浩强 清华大学出版社
[4] 《Java程序设计之网络编程》李芝兴、杨瑞龙、朱庆生 清华大学出版社 20xx年3月第一版
-14-
河北科技大学课程设计报告学生姓名祝冬冬学号专业班级计算机科学与技术课程名称学年学期指导教师2011年6月课程设计成绩评定表目录示例…
Java程序设计课程设计报告20xx20xx年度第1学期Hannio塔专业学生姓名班级学号指导教师完成日期计算机科学技术网络工程马…
安阳工学院计算机学院JAVA课程设计报告蜘蛛纸牌游戏专业班级09级网络工程2班学生姓名李瑞琳学生学号20xx03060016小组成…
黄淮学院JAVA课程设计报告题目:《日记本的设计与实现》课程设计学院:信息工程学院姓名:学号:专业:软件工程班级:软工1101B班…
java程序设计与应用开发Java课程设计报告书题目学籍管理系统班级数媒学号姓名教师20xx年12月24日1java程序设计与应用…
黄淮学院JAVA课程设计报告题目:《日记本的设计与实现》课程设计学院:信息工程学院姓名:学号:专业:软件工程班级:软工1101B班…
沈阳理工大学课程实践论文目录1前言111作业背景112课题简介113工作介绍1131个人主要工作1132主要收获2133自我评定2…
Java程序设计课程设计报告20xx20xx年度第1学期Hannio塔专业学生姓名班级学号指导教师完成日期计算机科学技术网络工程马…
Java课程设计报告课目计算器学院基础学院班级光信息20xx1学生指导教师丁振凡张晓瑞辅导教师江宇完成时间20xx年7月1日课程设…
安阳工学院计算机学院JAVA课程设计报告蜘蛛纸牌游戏专业班级09级网络工程2班学生姓名李瑞琳学生学号20xx03060016小组成…
20xx20xx学年第1学期滨州学院JavaWeb开发与应用课程设计报告题专班姓目齐鲁软件大赛报名系统的设计业计算机网络技术级20…