《计算机技术综合》课程设计报告 .doc

上传人:仙人指路1688 文档编号:2882620 上传时间:2023-03-01 格式:DOC 页数:14 大小:251KB
返回 下载 相关 举报
《计算机技术综合》课程设计报告 .doc_第1页
第1页 / 共14页
《计算机技术综合》课程设计报告 .doc_第2页
第2页 / 共14页
《计算机技术综合》课程设计报告 .doc_第3页
第3页 / 共14页
《计算机技术综合》课程设计报告 .doc_第4页
第4页 / 共14页
《计算机技术综合》课程设计报告 .doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《《计算机技术综合》课程设计报告 .doc》由会员分享,可在线阅读,更多相关《《计算机技术综合》课程设计报告 .doc(14页珍藏版)》请在三一办公上搜索。

1、 计算机技术综合课程设计学生姓名: 学 号: 6103105048 专业班级: 计算机051班 指导教师: 二00八 年 7 月 4 日目 录1.课程设计目的 22.课程设计题目描述和要求 23.课程设计内容 24.课程设计总结 125.参考书目 121.课程设计目的1.加深典型的Client/Server编程;2.理解发送和接收数据的协议匹配;3.学会使用线程机制来建立服务器;4.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;2.课程设计题目描述和要求实现文件传输功能 主要功能:(1)有客户端和服务器端(2)客户端可以上传各种类型的文件(3)服务器端可以接受很多文件上传(4)客户

2、端发出请求后,在服务器端应答后能将文件传到服务器上(5)实验实现时用环回测试将本机看作客户端和服务器端3.课程设计报告内容3.1课程设计源程序程序1-Client.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import .*;import java.io.*;public class Client extends JFrame implements ActionListener String str=; private JTextField t1; private JLabel l1,l2; priva

3、te JButton Exit,Ok,Open; private JFileChooser choose=new JFileChooser(); private File Myfile; public Client() Container c=getContentPane(); Panel p1=new Panel(); Panel p2=new Panel(); Panel p3=new Panel(); c.setLayout(new GridLayout(3,1); p1.setLayout(new FlowLayout(); p2.setLayout(new FlowLayout();

4、 p3.setLayout(new GridLayout(2,1); t1=new JTextField(35); l1=new JLabel(,JLabel.CENTER); l2=new JLabel(,JLabel.CENTER); Exit=new JButton(退出); Ok=new JButton(上传); Open=new JButton(浏览.); Exit.addActionListener(this); Ok.addActionListener(this); Open.addActionListener(this); p1.add(t1); p1.add(Open); c

5、.add(p1); p2.add(Ok); p2.add(Exit); c.add(p2); p3.add(l1); p3.add(l2); c.add(p3); setSize(500,200); show(); public void actionPerformed(ActionEvent e) str=; if(e.getSource()=Exit)System.exit(0); try if(e.getSource()=Ok) if(t1.getText()!=) this.client(); catch(Exception t) System.out.println(t.toStri

6、ng(); if(e.getSource()=Open) this.openf(); public void openf() int result=choose.showOpenDialog(null); Myfile=choose.getSelectedFile(); if(result=JFileChooser.APPROVE_OPTION) t1.setText(Myfile.getPath(); else if(result=JFileChooser.CANCEL_OPTION) t1.setText(); Myfile=null; public void client() byte

7、ff; int size; Socket clientSocket; PrintStream ps; String fileName; try /创建一个上传的Socket clientSocket=new Socket(127.1.1.1,8765); ps=new PrintStream(clientSocket.getOutputStream(); size=(int)Myfile.length(); fileName=Myfile.getName(); BufferedReader br=new BufferedReader(new InputStreamReader(clientSo

8、cket.getInputStream(); String over=n; byte p=over.getBytes(); byte name=(fileName+over).getBytes(); System.out.println(new String(name); /文件名 ps.write(name); ps.flush(); String s1=br.readLine(); String tmp=String.valueOf(size)+over; byte bsize=tmp.getBytes(); /文件大小 ps.write(bsize); ps.flush(); Strin

9、g s2=br.readLine(); str=上传结束,请选择其它文件; l1.setText(str); str=已上传的文件为+s1.trim()+;大小为+s2.trim(); l2.setText(str); /文件内容 FileInputStream in=new FileInputStream(Myfile); BufferedInputStream bf=new BufferedInputStream(in); ff=new byte1024; int c; while(c=bf.read(ff)!=-1) ps.write(ff,0,c); ps.close(); bf.cl

10、ose(); in.close(); clientSocket.close(); t1.setText(); catch(Exception e) System.out.println(e.toString(); public static void main(String args) Client app=new Client(); app.addWindowListener(new WindowAdapter() public void WindowClosing(WindowEvent e) System.exit(0); ); 程序2-Server.javaimport .*;impo

11、rt java.io.*;import java.util.*;class MyThread extends Threadprivate Socket clientSocket;private int counter;public MyThread(Socket i,int c)clientSocket=i;counter=c;/采用同步机制public synchronized void run()tryDataInputStream br=new DataInputStream(clientSocket.getInputStream();DataOutputStream output=ne

12、w DataOutputStream(clientSocket.getOutputStream();/文件大小byte n=new byte225;br.read(n);output.write(n);output.flush();/文件名byte ll=new byte255;br.read(ll);output.write(ll);output.flush();String tmpe=new String(ll);int a=Integer.parseInt(tmpe.trim();/创建文件用于保存上传的文件String names=new String(n);File Myfile=n

13、ew File(d:);String files=d:+Myfile.separator+(names.trim();FileOutputStream out=new FileOutputStream(files);BufferedOutputStream bw=new BufferedOutputStream(out);byte ff=new byte1024;int c=0;/把上传的数据输出至文件while(c=br.read(ff)!=-1)bw.write(ff,0,c);bw.close();output.close();out.close();br.close();clientS

14、ocket.close();catch(Exception e)System.out.println(e);public class Serverprivate static Socket clientSocket;private static int counter;public static void main(String args)int i=1;ServerSocket serverSocket;tryserverSocket=new ServerSocket(8765);while(true) System.out.println(等待客户端上传文件.);/监听与本socket的连

15、接并且接受它clientSocket=serverSocket.accept();/创建线程,将上传数据写至服务器的文件中Thread t=new MyThread(clientSocket,i);t.start(); System.out.println(上传成功!);i+;catch(Exception e)System.out.println(e); 3.2实验结果 测试程序结果时,要先运行服务器端程序Server.Java,让服务器端准备好接受客户端请求,然后才能运行客户端程序,如图1。图 1 等待接受上传文件 运行客户端程序Client.Java,效果如图2。图 2 点击“浏览”,弹

16、出文件对话框,如图3所示。图 3 找到某个目录下的某个文件,然后打开。我选择了D:国产井冈山国语TVRIP-RMVBTFTF井冈山01.Rmvb,打开后效果如图4。图 4 点击“上传”后,等待一段时间后Client.Java程序运行效果如图5。图 5 服务器端程序运行效果如图6。图 6 用于保存上传的文件的目录里面多了个上传的文件,如图7。图 7 再上传一个文件,如图8。图 8 点击“上传”后运行效果如图9。图 9 服务器端运行效果如图10。图 10 用于保存上传的文件的目录里面又多了个刚上传的文件,如图11。图 114.结论在做课程设计以前,我对文件传输的理解只是停留在理论知识的水平上,是“

17、纸上谈兵”,缺乏实际的程序设计经验。这次通过做课程设计,我基本完成了老师下达的设计任务。这是我这个课程设计的第二次设计,之前第一次的设计报告发给老师后完全不符合老师的要求,因为上学期课程设计的老师和林老师不一样,而我是完全按照上学期的思维来写设计报告的。在这次的设计过程中我几乎完全改了第一次的程序,在看了老师的模板后,我才知道自己的第一次的设计报告有多乱多繁琐,而且没有图形界面,没有良好的交互性。现对这次的设计几点体会总结如下:其一,本程序我选择用java进行开发。由于之前学过java语言,所以有一定的基础,但是因为过了比较长的时间,关于java的很多知识都忘记了,很多java 组件都不知道怎

18、么用,后来经过努力复习才记起了那些基本知识。其二, 在接到任务后我发现自己完全不懂网络编程的知识,而这个课程设计又要用到网络编程的知识,但是经过自己到图书馆查阅很多资料,最终掌握了网络编程的技巧,并完成了这次的编程。其三,通过这次编程,我学会了运用java语言进行网络编程,提高了自身的网络编程能力。总之,经过这几天的努力,我最终完成了“基于java的文件传输功能实现”的设计。在整个设计过程中,我不仅巩固了java知识和网络知识, 而且也达到了锻炼自己的目的,同时进一步加深了对编程的认识和理解。此次课程设计给我提供了一个既动手又动脑、自学、独立实践的机会,使我们养成了勤翻阅各种相关资料的习惯,将书本上的理论知识和实际有机地结合起来,锻炼了实际分析问题和解决问题的能力,提高了适应实际、实践编程的能力,为今后的学习和实践打下了良好的基础。参考书目:1 陈轶,姚晓昆 Java程序设计实验指导 机械工业出版社 20062 邱桃熔,林振荣,冯缨 Java语言程序设计教程 机械工业出版社 20053 谢希仁 计算机网络 大连理工大学出版社 2005

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号