La Red de Conocimientos Pedagógicos - Aprendizaje de redacción de artículos/tesis - Acerca de la transferencia de archivos usando JAVA SOCKET

Acerca de la transferencia de archivos usando JAVA SOCKET

Transferencia de archivos punto a punto

/*

importar java.io.*;

importar java.net.* ;

importar java.util.*;

*/

conexión HttpURLConnection privada;//conexión de almacenamiento

private int downsize = -1;/ /Tamaño del archivo de descarga, el valor inicial es -1

private int downed = 0; //Tamaño descargado de Wenjia, el valor inicial es 0

archivo guardado privado RandomAccessFile;// registrar descarga Archivo de almacenamiento de información

URL privada fileurl;//Registra la dirección del archivo que se descargará

private DataInputStream fileStream;//Registra el flujo de datos descargados

try{

/*Comience a crear el archivo de almacenamiento descargado e inicialice el valor*/

Archivo tempfileobject = new File("h:\\webwork-2.1.7.zip ");

p>

if(!tempfileobject.exists()){

/*Crea el archivo si no existe*/

tempfileobject.createNewFile();

}

savefile = new RandomAccessFile(tempfileobject,"rw");

/*Establecer conexión*/

fileurl = nueva URL("/files/documents/693/9723/webwork-2.1.7.zip");

conexión = (HttpURLConnection)fileurl.openConnection(); >

conexión.setRequestProperty("Range"," byte="+this.downed+"-");

this.downsize = conexión.getContentLength();

/ /System.out.println(connection.getContentLength())

new Thread(this).start()

}

catch(Exception e); ){

System.out. println(e.toString());

System.out.println("Error del generador"); exit(0);

}

public void run(){

/*Comienza a descargar el archivo. La siguiente prueba no reanuda la descarga. hay un problema con el archivo descargado*/

intente {

System.out.println("begin!"

Fecha de inicio);

hora = nueva fecha();

comenzartime.setTime(nueva fecha().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){//Establece el caché a un máximo de 256 KB

filebyte = nuevo byte[262144];

onecelen = 262144;

}

else{

filebyte = nuevo 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("¡fin!");

p>

System.out.println(begintime.getTime());

System.out.println(new Date().getTime()); p>

System.out.println(begintime.getTime() - nueva fecha().getTime());

}

catch(Exception e){

System.out.println(e.toString());

System.out.println("¡Hay un problema con el método run()!");

}

}

/***

//FileClient.java

importar java.io.*;

importar java.net.*;

clase pública FileClient {

pública estática vacía principal (String[] args) lanza una excepción {

//Utiliza el sistema de archivos local para aceptar datos de red y guardarlos como un archivo nuevo

File file = new File("d: \\fmd.doc ");

file.createNewFile();

RandomAccessFile raf = new RandomAccessFile(archivo, "rw");

// Conéctese al servidor de archivos a través de Socket

Socket server = new Socket(InetAddress.getLocalHost(), 3318);

//Cree un flujo de aceptación de red para aceptar datos de archivos del servidor

InputStream netIn = server .getInputStream();

InputStream in = new DataInputStream(new BufferedInputStream(netIn));

//Crear un búfer para almacenar en búfer los datos de la red

byte[] buf = nuevo byte[2048];

int num = in.read(buf);

while (num != (-1 )) {//Si se han leído todos los datos

raf.write(buf, 0, num);//Escribir datos en el archivo

raf.skipBytes(num); //Escribir bytes de archivo secuencialmente

num = in.read(buf);//Continuar leyendo archivos de la red

}

in.close() ;

raf .close();

}

}

//FileServer.java

importar java.io.*;

importar java.util.*;

importar java.net.*;

Clase pública FileServer {

public static void main(String[ ] args) lanza una excepción {

//Crea una secuencia de archivos para leer datos del archivo

Archivo file = new File("d: \\System Features.doc");

FileInputStream fos = new FileInputStream(file);

//Crear un servidor de red para aceptar solicitudes de clientes

ServerSocket ss = new ServerSocket(8801);

Socket client = ss.accept();

//Crear un flujo de salida de red y proporcionar un contenedor de datos

OutputStream netOut = client.getOutputStream();

OutputStream doc = new DataOutputStream(

new BufferedOutputStream(netOut));

//Crear búfer de lectura de archivos

byte[] buf = nuevo byte[2048];

in

t num = fos.read(buf);

while (num != (-1)) {//Si el archivo ha sido leído

doc.write(buf, 0 , num );//Escribe los datos del archivo fuera del búfer de red

doc.flush();//Actualiza el búfer y escribe los datos en el cliente

num = fos .read(buf );//Continuar leyendo datos del archivo

}

fos.close();

doc.close();

}

}

*/