java网络文件传输的实现Word文件下载.docx

上传人:b****2 文档编号:15098907 上传时间:2022-10-27 格式:DOCX 页数:8 大小:18.37KB
下载 相关 举报
java网络文件传输的实现Word文件下载.docx_第1页
第1页 / 共8页
java网络文件传输的实现Word文件下载.docx_第2页
第2页 / 共8页
java网络文件传输的实现Word文件下载.docx_第3页
第3页 / 共8页
java网络文件传输的实现Word文件下载.docx_第4页
第4页 / 共8页
java网络文件传输的实现Word文件下载.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

java网络文件传输的实现Word文件下载.docx

《java网络文件传输的实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《java网络文件传输的实现Word文件下载.docx(8页珍藏版)》请在冰豆网上搜索。

java网络文件传输的实现Word文件下载.docx

客户端向服务器发送文件传输请求,在服务器端要求鉴权时,

输入用户名和密码发送给服务器验证,如果验证通过就开始文件传输。

使用方法,如果需要重新编译的话输入以下两条命令:

javacSendFileSocket.java

javacSendFileClient.java

在命令行下的运行方式:

服务器端:

javaSendFileSocket

客户端:

javaSendFileClientserverIPAddress

例如:

javaSendFileClient192.168.0.153

服务器程序:

//packagezieckey.socket;

import.*;

importjava.io.*;

/**

*一个简单的多线程服务器程序,用于传输文件

*

*@authorzieckey

*/

publicclassSendFileSocketextendsThread

{

*@paramargs

*/

publicstaticvoidmain(String[]args)

/*if(args.length>

0)//如果有参数输入就启动服务器程序

server();

}else

//否则启动客户端进程

client();

}*/

//启动服务器程序

}

privatestaticfinalint 

PORT 

=6000;

privateSocket 

s;

privatestaticfinalString 

name 

="

zieckey"

;

password 

123456"

publicSendFileSocket(Sockets)

this.s=s;

publicvoidrun()

try

OutputStreamos=s.getOutputStream();

InputStreamis=s.getInputStream();

os.write("

Hello,welcomeyou!

"

.getBytes());

byte[]buf=newbyte[100];

while(true)

intlen=is.read(buf);

StringrevStr=newString(buf,0,len);

System.out.println("

Thisclientwantsto"

+revStr);

StringfileName;

if(revStr.startsWith("

get"

))//表明客户端请求传输一个文件

Pleaseinputyournameandpassword!

Usingtheformat:

name@password"

fileName=getFileName(revStr);

len=is.read(buf);

revStr=newString(buf,0,len);

Thereceivedusernameandpassword:

+revStr);

zieckey@123456"

))

FileInputStreamfins=newFileInputStream(fileName);

//byte[]fielBuf=newbyte[100];

intdata;

while(-1!

=(data=fins.read()))//从文件中读取数据,每次读取1字节

os.write(data);

//将读取到的数据写到网络数据流中发送给客户段

break;

getingfile'

susageis:

getfilename"

os.close();

is.close();

s.close();

}catch(Exceptione)

e.printStackTrace();

/*

*作用:

从客户端发来了文件请求命令中提取出所请求的文件名

*参数:

客户端发来了文件请求命令字符串,应该以“get”开头

*返回值:

提取出所请求的文件名

privateStringgetFileName(StringrevStr)

fileName=revStr.substring(3);

while(fileName.startsWith("

"

fileName=fileName.substring

(1);

returnfileName;

publicstaticvoidserver()

Thisisserver"

);

ServerSocketss=newServerSocket(PORT);

intcount=0;

//创建一个Socket等待客户端连接

Sockets=ss.accept();

count++;

Thisisthe"

+count+"

'

stclientconnetion!

newSendFileSocket(s).start();

//启动一个线程为这个客户端服务

}catch(Exceptionex)

ex.printStackTrace();

/*publicstaticvoidclient()

Thisisclient"

//创建一个Socket

Sockets=newSocket(InetAddress.getByName(null),PORT);

//输出流

//输入流

//从输入流中读取数据到buf

System.out.println(newString(buf,0,len));

//向输出流中写入数据,请求传输一个文件

getserver.txt"

StringtempStr=newString(buf,0,len);

if(tempStr.startsWith("

Pleaseinputyournameandpassword"

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

当前位置:首页 > 工程科技 > 能源化工

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

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