TCP通信功能实现计算机课程设计说明书Word文档下载推荐.docx

上传人:b****6 文档编号:22031632 上传时间:2023-02-02 格式:DOCX 页数:23 大小:199.83KB
下载 相关 举报
TCP通信功能实现计算机课程设计说明书Word文档下载推荐.docx_第1页
第1页 / 共23页
TCP通信功能实现计算机课程设计说明书Word文档下载推荐.docx_第2页
第2页 / 共23页
TCP通信功能实现计算机课程设计说明书Word文档下载推荐.docx_第3页
第3页 / 共23页
TCP通信功能实现计算机课程设计说明书Word文档下载推荐.docx_第4页
第4页 / 共23页
TCP通信功能实现计算机课程设计说明书Word文档下载推荐.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

TCP通信功能实现计算机课程设计说明书Word文档下载推荐.docx

《TCP通信功能实现计算机课程设计说明书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《TCP通信功能实现计算机课程设计说明书Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。

TCP通信功能实现计算机课程设计说明书Word文档下载推荐.docx

Java语言是现今使用最为广泛的编程语言,它的日益流行,尤其是Java与IntemetWeb的密切结合,使JAVA语言在全球取得了巨大的成功。

Java语言的多平台、面向对象、继承、封装、分布式、多线程及完善的安全机制等特色,成为现代信息系统建设与日常应用中的良好的开发平台和运行环境。

Java语言是基于网络计算的语言,网络应用是Java语言的重要应用之一。

Java提供的类库支持TCP/IP协议,应用程序可通过URL地址,在访问网络上任何地方的对象时,如同访问本地文件一样简单。

(三)JAVA中的ServerSocket类与Socket类

图3Java程序中Socket通信流程示意图

三、测试

(1)服务器端

图4服务器端界面

图5文件浏览

界面说明:

文件选择:

能打开Window下的文件浏览,选择自己想要发送的文件,并能将文件名以及所在路径分别显示在两个文本框中(图5)。

点击建立连接:

打开服务器,建立网络连接。

如若没有打开服务器客户端无法连接到网络。

(2)客户端

图6客户端

选择路径:

选择接受文件保存的路径,如果没有选择路径时,则默认保存在D盘目录下。

点击建立连接:

点击后,则打开IP网络连接,如果服务器端没有连接时,则会抛出拒绝网络连接异常:

.ConnectException:

Connectionrefused(如图7)。

图7.ConnectException异常

(3)控制面板相关信息提示

在控制面板中会有相关信息显示,便于在使用者能更好的了解该程序。

(4)功能实现

该TCP通信系统能够实现服务器端向客户端传送文件的功能,对于文件的类型以及大小都没有要求(如图8)。

测试发送文件包含了PNG图像、WORD文档、EXE应用程序、txt文本。

图8接受文件列表

四、设计总结

(一)总评

在现今互联网飞速发展的今天,网络通信发展的越来越迅速,所覆盖的范围也越来越广泛,作为计算机相关专业的我们,更是感受到了互联网的强大力量,了解网络传输的原理更是势在必行。

通过此次计算机网络课程设计,帮我回忆、巩固了上学期的计算机网络知识,并且通过课程设计,将理论知识运用于实践当中来。

同时JavaSocket网络编程的应用越来越广泛,其高效性,快捷性也得到了广大的软件开发商的喜爱,作为一种底层通信的先进开发手段,它在TCP,UDP,URL等网络通信方面的优势更加突出,因此选择了JAVA作为此次课程设计的开发语言。

此次计算机网络课程设计我选择了TCP通信,主要是实现服务器端和客户端之间文件传输。

TCP通信要求服务器端要处于监听阶段,即要先打开服务器端。

TCP要求服务器端和客户端都处于连接状态才能完成文件的传送,如果有一方断开则会停止传送。

(二)遇到的问题以及解决方案

1.一开始对于服务器端和客户端理解不够透彻,于是先打开客户端在打开服务器端,结果抛出网络连接异常。

后面通过查找资料后,明白错误的原由,在接下来的操作中,避免了异常抛出。

2.抛出java.io.FileNotFoundException:

D:

\接收文件(拒绝访问。

)异常。

后面通过资料的查阅,发现是因为在文件接收,新建文件中,文件名与路径名之间的错误使用,导致异常抛出。

具体代码如下:

FileOutputStreamfos1=newFileOutputStream(FileClientFrm.getpath());

Getpath()函数的返回值路径,因此出现错误。

解决方法是将代码程序修改为:

FileOutputStreamfos1=newFileOutputStream(FileClientFrm.getpath()+fileName);

五、使用说明

1)打开服务器端,点击“文件选择”选择要发送的文件—>

点击“建立连接”,调用SendFileServer.server()函数,打开服务器监听

2)打开客户端口,可选“选择路径”按钮,选择文件保存路径,以及另存为文件名称;

直接点击“建立连接”,则默认保存在D盘目录下。

3)文件传送成功。

在服务器端控制面板上会显示文件发送结束,表示文件传输成功。

六、附录(代码程序)

//服务器端代码

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

importjavax.swing.JTextField;

importjava.awt.FileDialog;

importjava.awt.TextArea;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.WindowAdapter;

importjava.awt.event.WindowEvent;

importjava.io.BufferedReader;

importjava.io.File;

importjava.io.FileReader;

importjava.io.FileInputStream;

importjava.io.IOException;

importjava.io.OutputStream;

import.ServerSocket;

import.Socket;

importjava.util.Scanner;

//各种包的导入

publicclassFileServer{

publicstaticvoidmain(Stringargs[])

{

FileServerFrmfrm=newFileServerFrm();

//newFileServer();

}

}

classFileServerFrmextendsJFrameimplementsActionListener

{

FileDialogop;

//文件数据类

staticJTextFieldtarea1=newJTextField();

staticJTextFieldtarea2=newJTextField();

JFramejf=newJFrame("

服务器端"

);

JLabellab=newJLabel("

要发送的文件名称是:

"

JButtonFilechooce=newJButton("

文件选择"

JButtonlink=newJButton("

点击建立连接"

//图形界面设计(控件定义)

staticStringgetname()

returntarea1.getText();

staticStringgetpath()

{

returntarea2.getText();

}

//文件打开

publicFileServerFrm()

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=newFileDialog(this,"

打开"

FileDialog.LOAD);

Filechooce.addActionListener(this);

link.addActionListener(this);

addWindowListener

newWindowAdapter(){

publicvoidwindowClosing(WindowEvente)

{

System.exit(0);

}

}

);

//SendFileServer.server();

publicvoidactionPerformed(ActionEvente)

if(e.getSource()==Filechooce)

Stringstr,str1,str2;

op.setVisible(true);

try

{

Filef1=newFile(op.getDirectory(),op.getFile());

FileReaderfr=newFileReader(f1);

BufferedReaderbr=newBufferedReader(fr);

tarea1.setText("

tarea2.setText("

str1=f1.getName();

str2=f1.getPath();

while((str=br.readLine())!

=null)

{

tarea1.setText(str1+'

\n'

tarea2.setText(str2+'

}

fr.close();

catch(Exceptione1)

{}

System.out.println("

Fileissend."

elseif(e.getSource()==link)

建立连接."

SendFileServer.server();

/*

*用TCP进行文件传输

*此文件为服务器文件

*当接受到客户端的请求之后,先向其传输文件名

*当客户端接受完毕之后,向客户端传输文件

**/

publicclassSendFileServerimplementsRunnable{

//服务器监听端口

privatestaticfinalintMONITORPORT=12345;

privateSockets;

publicSendFileServer(Sockets){

super();

this.s=s;

publicstaticvoidserver()

try{

//创建服务器socket

ServerSocketss=newServerSocket(MONITORPORT);

while(true)

//接收到一个客户端连接之后,创建一个新的线程进行服务

//并将联通的socket传给该线程

Sockets=ss.accept();

newThread(newSendFileServer(s)).start();

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

publicvoidrun(){

//TODOAuto-generatedmethodstub

byte[]buf=newbyte[100];

OutputStreamos=null;

FileInputStreamfins=null;

os=s.getOutputStream();

//文件路径

StringfilePath=FileServerFrm.getpath();

//获取选择的文件所在路径

//文件名

StringfileName=FileServerFrm.getname();

//获取选择的文件名

将文件名:

+fileName+"

传输过去"

//先将文件名传输过去

os.write(fileName.getBytes());

文件名是:

+FileServerFrm.getname());

路径是:

+FileServerFrm.getpath());

开始传输文件"

//将文件传输过去

//获取文件

fins=newFileInputStream(filePath);

intdata;

//通过fins读取文件,并通过os将文件传输

while(-1!

=(data=fins.read()))

os.write(data);

文件传输结束"

}finally

try{

if(fins!

=null)fins.close();

if(os!

=null)os.close();

this.s.close();

}catch(IOExceptione){

e.printStackTrace();

privateObjectactionPerformed(){

returnnull;

//客户端程序

importjava.io.BufferedWriter;

importjava.io.FileWriter;

publicclassFileClient{

publicstaticvoidmain(String[]args){

FileClientFrmFileClient=newFileClientFrm();

classFileClientFrmextendsJFrameimplementsActionListener

staticFileDialogsv;

客户端界面"

保存的文件名和路径"

选择路径"

//客户端图形界面设计(控件定义)

returnsv.getFile();

staticStringgetpath()

returnsv.getDirectory();

publicFileClientFrm()

//界面图形界面设计(控件添加、位置设计)

//保存路径

publicvoid

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

当前位置:首页 > 高等教育 > 管理学

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

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