社区
Java SE
帖子详情
用JAVA实现一个点对点文件传输软件
wuyan19831013
2005-05-24 10:51:27
马上要做课件了!题目是:点对点的文件传输软件
具体要求:
1:直接使用TCP或UDP协议实现通信
2:能点对点的正确传输文件
3:传输包的长度可方便的在运行界面进行定制
4:可方便的在运行界面中指定好传输的文件
我想用JAVA实现,但我对socket编程不太熟悉,对UI还行
大家谈谈该如何实现,具体用到哪些技术? 该软件实现难度如何?若有实现代码可以参考,小弟感激不尽!
...全文
914
8
打赏
收藏
用JAVA实现一个点对点文件传输软件
马上要做课件了!题目是:点对点的文件传输软件 具体要求: 1:直接使用TCP或UDP协议实现通信 2:能点对点的正确传输文件 3:传输包的长度可方便的在运行界面进行定制 4:可方便的在运行界面中指定好传输的文件 我想用JAVA实现,但我对socket编程不太熟悉,对UI还行 大家谈谈该如何实现,具体用到哪些技术? 该软件实现难度如何?若有实现代码可以参考,小弟感激不尽!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
说好不能打脸
2005-06-28
打赏
举报
回复
嘿嘿嘿,写得不好,不要见笑,注释我加上了的。
说好不能打脸
2005-06-28
打赏
举报
回复
这个不要使用socket,因为你要用到HTTP协议且支持断点传输,而java的net包是作好了的,你只需要使用就可以了,用io包很容易就可以指定续传位置。用http实现断点续传的核心代码我给你:
import java.io.RandomAccessFile;
import java.io.File;
import java.io.InputStream;
import java.io.DataInputStream;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.net.HttpURLConnection;
import java.net.ConnectException;
import java.net.URL;
import java.lang.Runnable;
import java.lang.Thread;
import java.util.Date;
public class TestUpDown2 implements Runnable{
private HttpURLConnection connection;//存储连接
private int downsize = -1;//下载文件大小,初始值为-1
private int downed = 0;//文加已下载大小,初始值为0
private RandomAccessFile savefile;//记录下载信息存储文件
private URL fileurl;//记录要下载文件的地址
private DataInputStream fileStream;//记录下载的数据流
public TestUpDown2(){
try{
/*开始创建下载的存储文件,并初始化值*/
File tempfileobject = new File("h:\\webwork-2.1.7.zip");
if(!tempfileobject.exists()){
/*文件不存在则建立*/
tempfileobject.createNewFile();
}
savefile = new RandomAccessFile(tempfileobject,"rw");
/*建立连接*/
fileurl = new URL("https://webwork.dev.java.net/files/documents/693/9723/webwork-2.1.7.zip");
connection = (HttpURLConnection)fileurl.openConnection();
connection.setRequestProperty("Range","byte="+this.downed+"-");
this.downsize = connection.getContentLength();
//System.out.println(connection.getContentLength());
new Thread(this).start();
}
catch(Exception e){
System.out.println(e.toString());
System.out.println("构建器错误");
System.exit(0);
}
}
public void run(){
/*开始下载文件,以下测试非断点续传,下载的文件存在问题*/
try{
System.out.println("begin!");
Date begintime = new Date();
begintime.setTime(new Date().getTime());
byte[] filebyte;
int onecelen;
//System.out.println(this.connection.getInputStream().getClass().getName());
this.fileStream = new DataInputStream(
new BufferedInputStream(
this.connection.getInputStream()));
System.out.println("size = " + this.downsize);
while(this.downsize != this.downed){
if(this.downsize - this.downed > 262144){//设置为最大256KB的缓存
filebyte = new byte[262144];
onecelen = 262144;
}
else{
filebyte = new byte[this.downsize - this.downed];
onecelen = this.downsize - this.downed;
}
onecelen = this.fileStream.read(filebyte,0,onecelen);
this.savefile.write(filebyte,0,onecelen);
this.downed += onecelen;
System.out.println(this.downed);
}
this.savefile.close();
System.out.println("end!");
System.out.println(begintime.getTime());
System.out.println(new Date().getTime());
System.out.println(begintime.getTime() - new Date().getTime());
}
catch(Exception e){
System.out.println(e.toString());
System.out.println("run()方法有问题!");
}
}
public static void main(String[] src) throws Exception{
new TestUpDown2();
}
}
oyljerry
2005-06-28
打赏
举报
回复
参考一些java 的socket 例子
真心无著
2005-06-27
打赏
举报
回复
我是VC++的初学者,老师却给我们出了道难题:
局域网内的点对点文件传输实现。
要求:机器的寻址原理,文件的传输原理,怎么进行文件的完整传输问题,验证方式如何,算法原理说明,包括文件的分割等,使用什么协议,使用的组件是什么,自定义的组件类的说明。
语言要求:VC++
请高手大哥帮帮忙,小弟万分感谢!
ben_na
2005-05-27
打赏
举报
回复
JAVA编写网络很方便的,看看相应的库或例子。还得研究一下简单的多线程哦,如果你需要介面的话
wuyan19831013
2005-05-26
打赏
举报
回复
我还顶!
wuyan19831013
2005-05-25
打赏
举报
回复
我顶!
wuyan19831013
2005-05-25
打赏
举报
回复
我再顶~!
java
源码包---
java
源码 大量 实例
一个
简单的CS模式的聊天
软件
,用socket
实现
,比较简单。 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别
实现
2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码...
JAVA
上百实例源码以及开源项目
一个
简单的CS模式的聊天
软件
,用socket
实现
,比较简单。 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别
实现
2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源代码...
java
源码包2
一个
简单的CS模式的聊天
软件
,用socket
实现
,比较简单。 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别
实现
2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源...
java
源码包4
一个
简单的CS模式的聊天
软件
,用socket
实现
,比较简单。 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别
实现
2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源...
java
源码包3
一个
简单的CS模式的聊天
软件
,用socket
实现
,比较简单。 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别
实现
2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 简单 EJB的真实世界模型(源...
Java SE
62,612
社区成员
307,332
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章