计算机课程设计求职报告,计算机技术综合课程设计报告

《计算机技术综合课程设计报告》由会员分享,可在线阅读,更多相关《计算机技术综合课程设计报告(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课程设计源程序程序1Client.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import .*;import java.io.*;public class Client extends JFrame implements ActionListenerString str=;private JTextField t1;private JLabel l1,l2;private JBut。

3、ton 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();p3.setLayout(new。

4、 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.add(p1);p2.add(Ok);p2.add(。

5、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);tryif(e.getSource()=Ok)if(t1.getText()!=)this.client();catch(Exception t)System.out.println(t.toString();if(e.getSource()=Open)this.openf();p。

6、ublic 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 ff;int size;Socket clientSocket;PrintStream ps;String。

7、 fileName;try/创建一个上传的SocketclientSocket=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(clientSocket.getInputStream();String over=n;byte p=over.getBytes();byte 。

8、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();String s2=br.readLine();str=上传结束,请选择其它文件;l1.setText(str);str=已上传的文件为+s1.trim()+;大小为。

9、+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.close();in.close();clientSocket.close();t1.setText();catch(Exception e)System.out.println(e.t。

10、oString();public static void main(String args)Client app=new Client();app.addWindowListener(new WindowAdapter()public void WindowClosing(WindowEvent e)System.exit(0););程序2Server.javaimport .*;import java.io.*;import java.util.*;class MyThread extends Threadprivate Socket clientSocket;private int cou。

11、nter;public MyThread(Socket i,int c)clientSocket=i;counter=c;/采用同步机制public synchronized void run()tryDataInputStream br=new DataInputStream(clientSocket.getInputStream();DataOutputStream output=new DataOutputStream(clientSocket.getOutputStream();/文件大小byte n=new byte225;br.read(n);output.write(n);out。

12、put.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=new File(d:);String files=d:+Myfile.separator+(names.trim();FileOutputStream out=new FileOutputStream(fil。

13、es);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();clientSocket.close();catch(Exception e)System.out.println(e);public class Serverprivate static Socket clientSoc。

14、ket;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的连接并且接受它clientSocket=serverSocket.accept();/创建线程,将上传数据写至服务器的文件中Thread t=new MyThread(clientSocket,i);t.star。

15、t();System.out.println(上传成功!);i+;catch(Exception e)System.out.println(e); 3.2实验结果1 测试程序结果时,要先运行服务器端程序Server.Java,让服务器端准备好接受客户端请求,然后才能运行客户端程序,如图1。图 1 等待接受上传文件2 运行客户端程序Client.Java,效果如图2。图 23 点击“浏览”,弹出文件对话框,如图3所示。图 34 找到某个目录下的某个文件,然后打开。我选择了D:国产井冈山国语TVRIP-RMVBTFTF井冈山01.Rmvb,打开后效果如图4。图 45 点击“上传”后,等待一段时间后。

16、Client.Java程序运行效果如图5。图 56 服务器端程序运行效果如图6。图 67 用于保存上传的文件的目录里面多了个上传的文件,如图7。图 78 再上传一个文件,如图8。图 89 点击“上传”后运行效果如图9。图 910 服务器端运行效果如图10。图 1011 用于保存上传的文件的目录里面又多了个刚上传的文件,如图11。图 114.结论在做课程设计以前,我对文件传输的理解只是停留在理论知识的水平上,是“纸上谈兵”,缺乏实际的程序设计经验。这次通过做课程设计,我基本完成了老师下达的设计任务。这是我这个课程设计的第二次设计,之前第一次的设计报告发给老师后完全不符合老师的要求,因为上学期课程。

17、设计的老师和林老师不一样,而我是完全按照上学期的思维来写设计报告的。在这次的设计过程中我几乎完全改了第一次的程序,在看了老师的模板后,我才知道自己的第一次的设计报告有多乱多繁琐,而且没有图形界面,没有良好的交互性。现对这次的设计几点体会总结如下:其一,本程序我选择用java进行开发。由于之前学过java语言,所以有一定的基础,但是因为过了比较长的时间,关于java的很多知识都忘记了,很多java 组件都不知道怎么用,后来经过努力复习才记起了那些基本知识。其二, 在接到任务后我发现自己完全不懂网络编程的知识,而这个课程设计又要用到网络编程的知识,但是经过自己到图书馆查阅很多资料,最终掌握了网络编。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值