`
dato0123
  • 浏览: 970297 次
文章分类
社区版块
存档分类
最新评论

java文件传输

 
阅读更多
200792101.jpg
200792102.jpg
200792103.jpg

文件接收部分

FileReceiver.java

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->packagecom.vista.Util;

importjava.io.IOException;
importjava.net.ServerSocket;

publicclassFileReceiverextendsThread
{
privateServerSockets=null;
privateintFILE_PORT;//文件传输的监听端口
privateUseruser=null;
publicFileReceiver(Userus)
{
this.FILE_PORT=us.getUdpPort();//设置文件端口
this.user=us;
}
publicvoidrun()
{
try
{
s
=newServerSocket(FILE_PORT);
System.
out.println("用户端开始监听:"+s);
while(true)
{
java.net.Socketsocket
=s.accept();
System.
out.println("连接接受"+socket);
newFileReceiverThread(user,socket);
}
}
catch(IOExceptione)
{
e.printStackTrace();
}
catch(java.lang.Exceptionex)
{
System.err.println(ex.getMessage().toString());
ex.printStackTrace();
}
finally
{
try
{
s.close();
}
catch(IOExceptione)
{
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}

}

FileReceiverThread.java
packagecom.vista.Util;

importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.OutputStreamWriter;
importjava.io.PrintWriter;
importjava.net.Socket;
importjava.util.Date;

importcom.vista.Form.SingleChatForm;

publicclassFileReceiverThreadextendsThread
{
privateSingleChatFormchatForm=null;
privatejava.net.Socketsocket=null;
privatejava.io.InputStreamin=null;//从客户端读数据的
privatejava.io.PrintWriterout=null;//向客户端写数据
privateStringserverMsg;
privateUsersender=null;
privateUserreceiver=null;
privatecom.vista.Util.SenderMsgSender=null;


publicFileReceiverThread(Userus,Socketsocket)
{
this.receiver=us;
try
{
this.socket=socket;
this.in=this.socket.getInputStream();
this.out=newPrintWriter(newBufferedWriter(newOutputStreamWriter(this.socket.getOutputStream())),true);
}
catch(IOExceptione)
{
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
this.start();//启动线程
}

publicvoidrun()
{
Stringinfo
="";
try
{
while(true)
{
//第一个参数为命令
Datebefor=newDate();


bytecmd[]=newbyte[128];
intb=0;
while(b<cmd.length)
{
b
+=in.read(cmd,b,cmd.length-b);
}
intends=0;
for(inti=0;i<cmd.length;i++)
{
if(cmd[i]==-0)
{
ends
=i;
break;
}
}
Stringcmds
=newString(cmd,0,ends);
if("cp".equals(cmds))
{
byte[]filename=newbyte[256];
b
=0;
while(b<cmd.length)
{
b
+=in.read(filename,b,filename.length-b);
}
ends
=0;
for(inti=0;i<cmd.length;i++)
{
if(filename[i]==-0)
{
ends
=i;
break;
}
}
Stringfilenames
=newString(filename,0,ends);
filenames
="F://"+filenames;

Filefileout
=newFile(filenames);


FileOutputStreamfos
=newFileOutputStream(fileout);

byte[]filesize=newbyte[64];
b
=0;
while(b<filesize.length)
{
b
+=in.read(filesize,b,filesize.length-b);
}

ends
=0;
for(inti=0;i<filesize.length;i++)
{
if(filesize[i]==-0)
{
ends
=i;
break;
}
}
Stringfilesizes
=newString(filesize,0,ends);

System.
out.println("filesize:"+filesizes);
intta=Integer.parseInt(filesizes);
byte[]buf=newbyte[1024*10];

while(true)
{
if(ta==0)
{
break;
}
intlen=ta;
if(len>buf.length)
{
len
=buf.length;
}
intrlen=in.read(buf,0,len);

ta-=rlen;
if(rlen>0)
{
fos.write(buf,
0,rlen);
fos.flush();
}
else
{
break;
}
}
Dateafter
=newDate();
longdiff=after.getTime()-befor.getTime();
diff
/=1000;

info="传输完成!文件已经保存到:"+filenames+",文件大小:"+filesizes+"字节,"+"共用时间:"+diff+"";
intresult=javax.swing.JOptionPane.showConfirmDialog(null,info,"文件传输",javax.swing.JOptionPane.YES_NO_OPTION,javax.swing.JOptionPane.INFORMATION_MESSAGE);

fos.close();
break;
}
}
//socket.close();
}
catch(Exceptione)
{
e.printStackTrace();
}
try
{
this.socket.close();
}
catch(IOExceptionex1)
{
}

}
}

文件发送线程

<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->FileSender.java
packagecom.vista.Util;

importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.OutputStream;
importjava.io.OutputStreamWriter;
importjava.io.PrintWriter;
importjava.net.InetAddress;
importjava.net.Socket;
importjava.net.UnknownHostException;

publicclassFileSenderextendsThread
{
privateSocketsocket=null;//客户端socket
privateOutputStreamout=null;//向服务器写数据
privateintRECEIVER_PORT=-1;//接收者端口

privateFilefileToSend=null;//要传输的文件

publicFileSender(Filefile,intReceiver_Port)
{
this.fileToSend=file;
this.RECEIVER_PORT=Receiver_Port;//设置接收方端口
try
{
this.socket=newSocket(InetAddress.getLocalHost(),RECEIVER_PORT);
out=socket.getOutputStream();//向接收者发数据的
}
catch(UnknownHostExceptione)
{
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
catch(IOExceptione)
{
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}

publicvoidrun()
{
byte[]cmd=newbyte[128];
byte[]tcmd="cp".getBytes();
for(inti=0;i<tcmd.length;i++)
{
cmd[i]
=tcmd[i];
}
cmd[tcmd.length]
=-0;
try
{
out.write(cmd,0,cmd.length);
}
catch(IOExceptione)
{
e.printStackTrace();
}
//文件名
byte[]file=newbyte[256];
byte[]tfile=this.fileToSend.getName().getBytes();
for(inti=0;i<tfile.length;i++)
{
file[i]
=tfile[i];
}
file[tfile.length]
=-0;
try
{
out.write(file,0,file.length);
}
catch(IOExceptione)
{
e.printStackTrace();
}
//大小
byte[]size=newbyte[64];
byte[]tsize=(""+this.fileToSend.length()).getBytes();

for(inti=0;i<tsize.length;i++)
{
size[i]
=tsize[i];
}

size[tsize.length]
=-0;
try
{
out.write(size,0,size.length);
}
catch(IOExceptione)
{
//TODOAuto-generatedcatchblock
e.printStackTrace();
}

FileInputStreamfis
=null;
byte[]buf=newbyte[1024*10];
try
{
fis
=newFileInputStream(this.fileToSend);
}
catch(FileNotFoundExceptione)
{
e.printStackTrace();
}
intreadsize=0;
try
{
while((readsize=fis.read(buf,0,buf.length))>0)
{
out.write(buf,0,readsize);
out.flush();
}
}
catch(IOExceptione)
{
e.printStackTrace();
}

}

}

分享到:
评论
1 楼 wmaizai163 2014-04-12  
有源码文件么 可调试的那种  发我邮箱可以么  390690251@qq.com

相关推荐

    java毕业设计——java文件传输系统的设计与实现(论文+源代码).zip

    java毕业设计——java文件传输系统的设计与实现(论文+源代码).zip java毕业设计——java文件传输系统的设计与实现(论文+源代码).zip java毕业设计——java文件传输系统的设计与实现(论文+源代码).zip java毕业设计...

    java文件传输工具

    Java文件传输工具是一种基于Java开发的应用程序,设计用于实现基本的点对点(P2P)文件传输功能。这个工具提供了简单易用的界面,让用户能够方便地在两台计算机之间共享和移动文件。以下是对该工具核心特性和技术...

    JAVA文件传输(论文+源代码).rar

    JAVA文件传输(论文+源代码) JAVA文件传输(论文+源代码) JAVA文件...JAVA文件传输(论文+源代码) JAVA文件传输(论文+源代码) JAVA文件传输(论文+源代码) JAVA文件传输(论文+源代码) JAVA文件传输(论文+源代码) JAVA文件传

    JAVA文件传输(源代码).zip

    JAVA文件传输(源代码).zipJAVA文件传输(源代码).zipJAVA文件传输(源代码).zipJAVA文件传输(源代码).zipJAVA文件传输(源代码).zipJAVA文件传输(...代码).zipJAVA文件传输(源代码).zipJAVA文件传输(源代码).zipJAVA文件传

    java文件传输程序 源码+jar文件

    Java文件传输程序是一种基于Java编程语言开发的应用,用于在计算机之间高效、可靠地移动或复制文件。本项目源码提供了一个基本的实现,支持多线程传输,这使得它能够同时处理多个文件,提高整体传输效率。然而,由于...

    java文件传输源代码

    Java文件传输源代码是Java编程中的一个重要领域,它涉及到如何在不同的系统或网络环境中高效、安全地移动数据。在这个场景中,我们关注的是基于Java的简单、易懂且方便学习的实现方式。以下是对相关知识点的详细说明...

    java 文件传输 源代码和课程设计报告

    综上所述,这个Java文件传输项目涵盖了网络编程、文件操作、并发控制等多个核心知识点,对提升开发者的技术能力大有裨益。通过实际操作和分析源代码,不仅可以深入理解这些概念,还能提升实际问题解决能力。

    JAVA文件传输(论文+源代码).zip

    Java文件传输技术是一种基于Java编程语言实现的网络数据交换方式,广泛应用于分布式系统、云存储、协同工作等场景。在“JAVA文件传输(论文+源代码).zip”中,我们可能找到一篇关于Java文件传输技术的学术论文以及...

    java 文件传输

    ### Java 文件传输技术详解 #### 一、概述 在Java中实现文件传输主要涉及到网络编程中的Socket编程。本文档详细介绍了如何使用Socket进行文件传输,包括客户端与服务器端的设计与实现。 #### 二、基本原理 文件...

    (Java毕业设计)JAVA文件传输(+源代码).rar

    (Java毕业设计)JAVA文件传输(Java毕业设计)JAVA文件传输(Java毕业设计)JAVA文件传输(Java毕业设计)JAVA文件传输(Java毕业设计)JAVA文件传输(Java毕业设计)JAVA文件传输(Java毕业设计)JAVA文件传输(Java毕业设计)JAVA...

    基于java文件传输示例

    #### Java文件传输的核心技术:Socket **Socket**(套接字)是网络通信的基础组件,它提供了一种进程间通信的方式,使不同计算机上的进程能够通过网络进行数据交换。在Java中,Socket编程主要涉及`java.net.Socket`...

    JAVA文件传输(论文+源代码)

    JAVA文件传输(论文+源代码)JAVA文件传输(论文+源代码)JAVA文件传输(论文+源代码)JAVA文件传输(论文+源代码)JAVA文件传输(论文+源代码)JAVA文件传输(论文+源代码)JAVA文件传输(论文+源代码)JAVA文件传输(论文+源代码)...

    JAVA文件传输P2P源码

    【JAVA文件传输P2P源码】是一种在局域网内实现文件共享和传输的程序,主要用于方便在没有专用文件传输工具的情况下,朋友之间能够快速、便捷地分享文件。P2P(Peer-to-Peer)技术是其核心,它允许网络中的每一个节点...

    java文件传输,基于tcp/ip的文件传输

    这个项目的标签“java文件传输”表明其重点在于Java环境下实现TCP/IP文件传输。从压缩包的文件名列表来看,可能包含实现此功能的Java源代码文件。通过这些代码,我们可以深入学习如何在实际项目中应用上述概念和技术...

    java文件传输系统

    Java文件传输系统是一种基于Java编程语言开发的软件应用,它允许用户在不同的终端或网络节点之间安全、高效地传输各种类型的文件,包括图片。这样的系统通常包含一系列关键组件和技术,以确保文件的完整性和传输效率...

    能真实运行的两个Java文件传输实例

    本教程将深入探讨两个能真实运行的Java文件传输实例,它们是基于TCP协议实现的,确保了数据传输的可靠性。 首先,TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在...

Global site tag (gtag.js) - Google Analytics