Colección de citas famosas - Libros antiguos - Acerca del uso de sockets JAVA para transferir archivos

Acerca del uso de sockets JAVA para transferir archivos

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, el valor inicial es -1.

private int downed = 0; //El tamaño de descarga de Wenjia, el valor inicial es 0.

archivo privado de acceso aleatorio para guardar; //Registrar el archivo de almacenamiento de información de descarga

URL privada del archivo // Registre la dirección del archivo que se descargará.

Secuencia de archivos privada DataInputStream; //Registra la secuencia de datos descargados

Pruebe {

/*Comienza a crear el archivo de almacenamiento descargado e inicializa el valor*/< / p>

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

if (!tempfile object.exists()){

/*Crear si el archivo no existe*/

tempfileobject.crea nuevo archivo();

}

guardar archivo = nuevo acceso aleatorio. file( objeto archivo temporal, "rw");

/*Establecer conexión*/

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

conexión = (HttpURLConnection) fileurl.open conexión();

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

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

// system . println (conexión . getcontentlength ()); este) . start();

}

Catch (Excepción e) {

system out . p>System.out.println("Error del generador");

system.exit(0);

}

public void run() {

/*Comienza a descargar el archivo. Las siguientes pruebas continuarán sin puntos de interrupción. Hay un problema con el archivo descargado */

Prueba {

system . println ("begin!);

Fecha, hora de inicio = nueva fecha. ();

begintime.setTime(nuevaFecha().

getTime());

byte[]byte de archivo;

int onecelen

//system out . getClass().getName());

this . filestream = new data inputstream(

new buffer input stream(

this . conexión . getinputstream()) ));

system . println ("size = " this . downsize

mientras (this.downsize ! = this . downsize ){

< p); > if (this . downsize - this . down > 262144) { //Establece el caché máximo en 256 KB.

filebyte = nuevo byte [262144];

onecelen = 262144

}

En caso contrario {

byte de archivo = nuevo byte[este. reducir-este];

onecelen = esto. reducir-este;

}

onecelen = esto. . filestream lectura (byte de archivo, 0, un celen);

este archivo guardado. escritura (byte de archivo, 0, un celen); ;

sistema . println (este . caído);

este archivo guardado . system .out .println("¡fin!");

system .out .println(hora de inicio .gettime()); .getTime ());

system.out.println(begin time.gettime()-newDate().getTime());

}

capture (Excepción 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 *;

Cliente de archivo de clase pública {

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

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

Archivo archivo = nuevo archivo("d:\\FMD.doc");

archivo .create nuevo archivo()

RandomAccessFile RAF = nuevo; RandomAccessFile(file, "rw");

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

Socket server = new Socket(inet address. getlocalhost(), 3318);

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

InputStream netIn = server.getinputstream();

InputStream in = nuevos datos InputStream(new BufferedInputStream(netIn));

//Crear un búfer para almacenar datos de red

byte[]buf = nuevo byte[2048];

int num = in .

while (num!= (-1)){// ¿Has terminado de leer los datos?

RAF . write(buf, 0, num); //Escribe datos en el archivo

RAF . skip bytes(num); //Escribe bytes del archivo en orden

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

}

en .cerrar();

RAF cerrar()

}

}

//FileServer.java

Importar Java io *;

Importar Java util . net.*;

Servidor de archivos de clase pública {

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

//Crear una secuencia de archivos para leer Obtener los datos del archivo.

Archivo archivo = nuevo archivo("d:\\SystemFunction.doc");

archivo inputstream fos = nuevo archivo inputstream(archivo);

/ /Crear un servidor web para aceptar solicitudes de clientes.

server socket ss = new server socket (8801);

socket client = ss.accept();

//Crear un flujo de salida de red y proporcionar Paquete de datos.

flujo de salida netOut = client.get flujo de salida();

documento de flujo de salida = nuevo flujo de salida de datos(

new BufferedOutputStream(netOut));

//Crear búfer de lectura de archivos

byte[]buf = new byte[2048];

int num = fos.read(buf); >

while(num!=(-1)){//¿Has terminado de leer el archivo?

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

doc.flush() //Actualiza el búfer en el cliente. datos.

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

}

fos.close();

doc.close();

}

}

*/