ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:200.11KB ,
资源ID:3981880      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3981880.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机课程设计说明书.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机课程设计说明书.docx

1、计算机课程设计说明书编号: 计算机网络课程设计说明书题 目: TCP通信功能实现 系 别: 计算机科学与工程学院专 业: 学生姓名: 学 号: 指导教师: 2015年04 月22日摘 要TCP/IP协议是Internet最基本的协议、Internet国际互联网络的基础。定义了电子设备连入因特网的规范。而Socket通信就是基于TCP/IP协议的一直通信机制。TCP/IP网络中最常用的传输协议TCP和UDP。传输层通常以TCP和UDP协议来控制端点到端点的通信。Socket定义了通信的端点,是由IP地址和端口号组成。JAVA语言已经成为现今网络应用中最广泛的语言,本文就是介绍JAVA中的Sock

2、et套接字以及通信的实现。关键字:JAVA SOCKET,TCP/IP,套接字,网络编程一、设计任务1、能实现客户端和服务器端之间文件的传输。2、服务器端口能实现目标文件浏览,并将所选择的文件作为发送文件。3、客户端能实现保存路径的浏览,默认情况下将接受文件存放在一定路径。4、客户端和服务器端能有简单的图形界面。 二、总体设计采用TCP进行通讯,需要服务器和客户端两个部分,因此需要FileServer和FileClient两个部分,两个文件的IP地址和端口都是程序指定的。运用JAVA语言,在Eclipese应用程序中进行代码编写。(一)TCP/IP协议介绍TCP/IP是Transmission

3、 Control Protocol/Internet Protocol的简写,中文译为传输控制协议/因特网互联协议,又叫做网络通讯协议,由网络层的IP协议和传输层的TCP协议组成,是Internet最基本的协议、Internet国际互联网络的基础。TCP/IP 定义了电子设备连入因特网的规范,以及数据如何在它们之间传输的标准。该协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台电脑规定一个地址。(二)JAVA语言网络编程的优势Java语言

4、是现今使用最为广泛的编程语言,它的日益流行,尤其是Java与Intemet Web的密切结合,使JAVA语言在全球取得了巨大的成功。Java语言的多平台、面向对象、继承、封装、分布式、多线程及完善的安全机制等特色,成为现代信息系统建设与日常应用中的良好的开发平台和运行环境。Java语言是基于网络计算的语言,网络应用是Java语言的重要应用之一。Java提供的类库支持TCP/IP协议,应用程序可通过URL地址,在访问网络上任何地方的对象时,如同访问本地文件一样简单。(三)JAVA中的ServerSocket类与Socket类图3 Java程序中Socket通信流程示意图三、测试(1)服务器端图4

5、 服务器端界面图5 文件浏览界面说明:文件选择:能打开Window下的文件浏览,选择自己想要发送的文件,并能将文件名以及所在路径分别显示在两个文本框中(图5)。点击建立连接:打开服务器,建立网络连接。如若没有打开服务器客户端无法连接到网络。(2)客户端图6 客户端界面说明: 选择路径:选择接受文件保存的路径,如果没有选择路径时,则默认保存在D盘目录下。 点击建立连接:点击后,则打开IP网络连接,如果服务器端没有连接时,则会抛出拒绝网络连接异常:.ConnectException: Connection refused(如图7)。图7 .ConnectException异常(3)控制面板相关信息

6、提示在控制面板中会有相关信息显示,便于在使用者能更好的了解该程序。(4)功能实现该TCP通信系统能够实现服务器端向客户端传送文件的功能,对于文件的类型以及大小都没有要求(如图8)。测试发送文件包含了PNG图像、WORD文档、EXE应用程序、txt文本。图8 接受文件列表四、设计总结(一)总评在现今互联网飞速发展的今天,网络通信发展的越来越迅速,所覆盖的范围也越来越广泛,作为计算机相关专业的我们,更是感受到了互联网的强大力量,了解网络传输的原理更是势在必行。通过此次计算机网络课程设计,帮我回忆、巩固了上学期的计算机网络知识,并且通过课程设计,将理论知识运用于实践当中来。同时Java Socket

7、网络编程的应用越来越广泛,其高效性,快捷性也得到了广大的软件开发商的喜爱,作为一种底层通信的先进开发手段,它在TCP,UDP,URL等网络通信方面的优势更加突出,因此选择了JAVA作为此次课程设计的开发语言。此次计算机网络课程设计我选择了TCP通信,主要是实现服务器端和客户端之间文件传输。TCP通信要求服务器端要处于监听阶段,即要先打开服务器端。TCP要求服务器端和客户端都处于连接状态才能完成文件的传送,如果有一方断开则会停止传送。 (二)遇到的问题以及解决方案 1.一开始对于服务器端和客户端理解不够透彻,于是先打开客户端在打开服务器端,结果抛出网络连接异常。后面通过查找资料后,明白错误的原由

8、,在接下来的操作中,避免了异常抛出。 2.抛出java.io.FileNotFoundException: D:接收文件 (拒绝访问。)异常。后面通过资料的查阅,发现是因为在文件接收,新建文件中,文件名与路径名之间的错误使用,导致异常抛出。具体代码如下:FileOutputStream fos1 = new FileOutputStream(FileClientFrm.getpath();Getpath()函数的返回值路径,因此出现错误。解决方法是将代码程序修改为:FileOutputStream fos1 = new FileOutputStream(FileClientFrm.getpat

9、h()+fileName);五、使用说明1)打开服务器端,点击“文件选择”选择要发送的文件点击“建立连接”,调用SendFileServer.server()函数,打开服务器监听2)打开客户端口,可选“选择路径”按钮,选择文件保存路径,以及另存为文件名称;直接点击“建立连接”,则默认保存在D盘目录下。3)文件传送成功。在服务器端控制面板上会显示文件发送结束,表示文件传输成功。六、附录(代码程序)/服务器端代码import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.sw

10、ing.JTextField;import java.awt.FileDialog;import java.awt.TextArea;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.F

11、ileInputStream;import java.io.IOException;import java.io.OutputStream;import .ServerSocket;import .Socket;import java.util.Scanner;/各种包的导入public class FileServer public static void main(String args) FileServerFrm frm=new FileServerFrm(); /new FileServer(); class FileServerFrm extends JFrame implemen

12、ts ActionListener FileDialog op; /文件数据类 static JTextField tarea1=new JTextField(); static JTextField tarea2=new JTextField(); JFrame jf=new JFrame(服务器端); JLabel lab=new JLabel(要发送的文件名称是:); JButton Filechooce=new JButton(文件选择); JButton link=new JButton(点击建立连接); /图形界面设计(控件定义) static String getname() r

13、eturn tarea1.getText(); static String getpath() return tarea2.getText(); /文件打开 public FileServerFrm() super(打开和保存文件); /图形界面设计(添加控件) jf.setSize(600, 400); jf.setLayout(null); jf.add(Filechooce); jf.add(link); jf.add(tarea1); jf.add(tarea2); jf.add(lab); Filechooce.setLocation(400,200); Filechooce.set

14、Size(100, 30); link.setLocation(100,250); link.setSize(300, 50); lab.setLocation(20,10); lab.setSize(300, 50); tarea1.setLocation(50,70); tarea1.setSize(500, 50); tarea2.setLocation(50,140); tarea2.setSize(500, 50); jf.setVisible(true); jf.setResizable(true); op = new FileDialog(this,打开,FileDialog.L

15、OAD); Filechooce.addActionListener(this); link.addActionListener(this); addWindowListener ( new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); /SendFileServer.server(); public void actionPerformed(ActionEvent e) if(e.getSource()=Filechooce) String str,str1,str2; op.setVi

16、sible(true); try File f1=new File(op.getDirectory(),op.getFile(); FileReader fr=new FileReader(f1); BufferedReader br=new BufferedReader(fr); tarea1.setText(); tarea2.setText(); str1=f1.getName(); str2=f1.getPath(); while(str=br.readLine()!=null) tarea1.setText(str1+n); tarea2.setText(str2+n); fr.cl

17、ose(); catch(Exception e1) System.out.println(File is send.); else if(e.getSource()=link) System.out.println(建立连接.); SendFileServer.server(); import java.awt.FileDialog;import java.awt.TextArea;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter

18、;import java.awt.event.WindowEvent;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileReader;import java.io.IOException;import java.io.OutputStream;import .ServerSocket;import .Socket;import java.util.Scanner;/* * 用TCP进行文件传输 * 此文件为服务器文件 * 当接受到客户端的请求之后

19、,先向其传输文件名 * 当客户端接受完毕之后,向客户端传输文件 * */import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;public class SendFileServer implements Runnable / 服务器监听端口 private static final int MONITORPORT = 12345; private Socket s ; public SendFileServer(Socket s)

20、super(); this.s = s; public static void server() try / 创建服务器socket ServerSocket ss = new ServerSocket(MONITORPORT); while(true) / 接收到一个客户端连接之后,创建一个新的线程进行服务 / 并将联通的socket传给该线程 Socket s = ss.accept(); new Thread(new SendFileServer(s).start(); catch (IOException e) / TODO Auto-generated catch block e.p

21、rintStackTrace(); public void run() / TODO Auto-generated method stub byte buf = new byte100; OutputStream os=null; FileInputStream fins=null; try os = s.getOutputStream(); / 文件路径 String filePath =FileServerFrm.getpath(); /获取选择的文件所在路径 / 文件名 String fileName =FileServerFrm.getname(); / 获取选择的文件名 System

22、.out.println(将文件名:+fileName+传输过去); /先将文件名传输过去 os.write(fileName.getBytes(); System.out.println(文件名是:+FileServerFrm.getname(); System.out.println(路径是:+FileServerFrm.getpath(); System.out.println(开始传输文件); /将文件传输过去 / 获取文件 fins = new FileInputStream(filePath); int data; / 通过fins读取文件,并通过os将文件传输 while(-1!

23、=(data = fins.read() os.write(data); System.out.println(文件传输结束); catch (IOException e) / TODO Auto-generated catch block e.printStackTrace(); finally try if(fins!=null) fins.close(); if(os!=null) os.close(); this.s.close(); catch (IOException e) e.printStackTrace(); private Object actionPerformed()

24、/ TODO Auto-generated method stub return null; /客户端程序import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;import java.awt.FileDialog;import java.awt.TextArea;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt

25、.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileInputStream;import java.io.FileWriter;import java.io.IOException;import java.io.OutputStream;import .ServerSocket;import

26、 .Socket;import java.util.Scanner;public class FileClient public static void main(String args) / TODO Auto-generated method stub FileClientFrm FileClient=new FileClientFrm(); class FileClientFrm extends JFrame implements ActionListener FileDialog op; static FileDialog sv; static JTextField tarea1=ne

27、w JTextField(); static JTextField tarea2=new JTextField(); JFrame jf=new JFrame(客户端界面); JLabel lab=new JLabel(保存的文件名和路径); JButton Filechooce=new JButton(选择路径); JButton link=new JButton(点击建立连接);/客户端图形界面设计(控件定义) static String getname() return sv.getFile(); static String getpath() return sv.getDirector

28、y(); public FileClientFrm() super(打开和保存文件); /界面图形界面设计(控件添加、位置设计) jf.setSize(600, 400); jf.setLayout(null); jf.add(Filechooce); jf.add(link); jf.add(tarea1); jf.add(tarea2); jf.add(lab); Filechooce.setLocation(400,200); Filechooce.setSize(100, 30); link.setLocation(100,250); link.setSize(300, 50); lab.setLocation(20,10); lab.setSize(300, 50); tarea1.setLocation(50,70); tarea1.setSize(500, 50); tarea2.setLocation(50,140); tarea2.setSize(500, 50); jf.setVisible(true); jf.setResizable(true); /保存路径 op = new FileDialog(this,打开,FileDialog.LOAD); Filechooce.addActionListene

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1