当前位置:首页 > Web开发 > 正文

原因未知" ); } } } 断点上传(客户端) package com . cn . csdn . seesun201

2024-03-31 Web开发

java两台处事器之间,大文件上传(续传),给与了Socket通信机制以及JavaIO流两个技术点,具体思路如下:

实现思路:

1、服:操作ServerSocket搭建处事器,开启相应端口,进行长连接操纵

2、服:使用ServerSocket.accept()要领进行梗阻,接收客户端请求

3、服:每接收到一个Socket就成立一个新的线程来措置惩罚惩罚它

4、客:操作Socket进行长途连接,询问已上传进度

5、客:使用FileInputStream.skip(long length)从指定位置读取文件,向处事器发送文件流

6、服:接收客户端输入流,使用RandomAccessFile.seek(long length)随机读取,将游标移动到指定位置进行读写

7、客/服:一个循环输出,一个循环读取写入

8、示例:以下是具体代码,仅供参考

文件介绍:

FileUpLoadServer.java(处事器接收文件类)

FileUpLoadClient.java(客户端发送文件类)

FinalVariables.java(自界说参数类)

SocketServerListener.javaJavaWeb启动Socket操纵类)

web.xml(配置文件,跟从项目启动)

断点上传(处事端)

package com.cn.csdn.seesun2012.socket;

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.RandomAccessFile;

import java.math.RoundingMode;

import java.net.ServerSocket;

import java.net.Socket;

import java.text.DecimalFormat;

public class FileUpLoadServer extends ServerSocket {

// 文件巨细

private static DecimalFormat df = null;

// 退出标识

private boolean quit = false;

static {

// 设置数字格局,保存一位有效小数

df = new DecimalFormat("#0.0");

df.setRoundingMode(RoundingMode.HALF_UP);

df.setMinimumFractionDigits(1);

df.setMaximumFractionDigits(1);

}

public FileUpLoadServer(int report) throws IOException {

super(report);

}

/**

使用线程措置惩罚惩罚每个客户端传输的文件

*

@throws Exception

*/

public void load() throws Exception {

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31688.html