文件多线程断点下载,附带进度显示

该博客介绍了如何实现一个支持多线程和断点续传的文件下载系统。服务器通过指定端口持续提供服务,当客户端连接时,服务器会发送文件名和大小信息。客户端接收到后创建对应文件,并根据服务器反馈的断点位置(默认为0)开始下载。通过3个类(Server, Server2, Client)的协作,实现了文件的多线程传输和进度显示功能。" 103107067,5837334,解决Dubbo jar包缺失:本地仓库部署与离线约束配置,"['Java', 'Dubbo', 'Maven', 'IDE配置', '依赖管理']
摘要由CSDN通过智能技术生成

目标:模拟网络文件下载,准备一个服务器,一个客户端,服务器能够提供多用户同时文件下载,且若出现异常(断点,停止)下次能够接着之前的位置继续下载,服务端可显示进度

思路:服务器根据指定端口提供服务,当然作为服务器需要24小时不停运行,死循环是必须的,一旦有客户端连接进来,拿到对应的连接,然后对这个连接进行文件传输任务(多线程实现),首先将文件名和文件的大小发送给客户端,客户端收到后根据得到的文件名创建一个新文件。在文件开始传输之间需要先读取之前断开的位置,服务器这边的断点位置以客户端的为准,所以需要客户端发送断点位置,第一次传送是没有位置的,所以发送过来的是位置0,即从0开始,然后开始文件的传送。这个实现创建了3个类,Server(服务器),Server2(用来提供服务的),Client(客户端),具体代码如下:

public class Server{
	
	File file;
	
	public Server(String path){
		this.file = new File(path);
	}
	
	public void send(){
		try {
			ServerSocket ss = new ServerSocket(8888);
			// 服务器死循环不停执行
			while(true){
				// 等待连接
				Socket s = ss.accept();
				System.out.println("客户端"+s.getInetAddress().getHostAddress
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值