crea un servidor que una vez iniciada sesión , permita ver directorio
Publicado por alejandro (3 intervenciones) el 26/04/2020 08:52:36
Tiene que ser a partir de este código, que permite el envío de ficheros al cliente.
el sistema tiene que permitir ver el contenido del directorio actual, mostrar el contenido de un determinado archivo y salir.
Y dicen que primero debes crear un diagrama de estados que muestre el funcionamiento del servidor.
ENVIAR
RECIBIR
Alguna idea?
el sistema tiene que permitir ver el contenido del directorio actual, mostrar el contenido de un determinado archivo y salir.
Y dicen que primero debes crear un diagrama de estados que muestre el funcionamiento del servidor.
ENVIAR
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package enviararchivos;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
public class enviar {
private ServerSocket servidor = null;
private Socket cliente = null;
private FileReader fr = null;
private BufferedReader br = null;
private String rutaFichero = null;
private DataOutputStream dos = null;
private DataInputStream dis = null;
private File archivo = null;
private boolean existeFichero = false;
private boolean archivoTerminado = false;
public enviar(){
try {
servidor = new ServerSocket(1500);
cliente = servidor.accept();
dis = new DataInputStream(cliente.getInputStream());
dos = new DataOutputStream(cliente.getOutputStream());
do {
rutaFichero = dis.readUTF();//se recibe la ruta del fichero
archivo = new File(rutaFichero);
if(archivo.exists()) {
dos.writeBoolean(true);//el fichero existe
existeFichero = true;
}else {
dos.writeBoolean(false);
existeFichero = false;
}
}while(existeFichero == false);
//se mandan los bytes del archivo
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(archivo));
int leer;
while((leer = bis.read()) != -1) {
//archivoTerminado = false;
dos.writeByte(leer);//Mandamos el byte del archivo
}
bis.close();
dos.writeBoolean(true);//
servidor.close();
cliente.close();
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
public static void main(String[] args) {
new enviar();
}
}
RECIBIR
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package enviararchivos;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.net.Socket;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
public class recibir {
private File archivo = null;
private BufferedWriter bw = null;
private Socket cliente = null;
private String nombreFichero = null;
private Scanner sca = null;
private DataInputStream dis = null;
private DataOutputStream dos = null;
private boolean existeFichero = false;
private boolean terminado = false;
public recibir() {
try {
cliente = new Socket("localhost", 1500);
dis = new DataInputStream(cliente.getInputStream());
dos = new DataOutputStream(cliente.getOutputStream());
sca = new Scanner(System.in);
do {
System.out.println("Escribe el nombre del fichero");
nombreFichero = sca.nextLine();
dos.writeUTF(nombreFichero);//MANDAMOS EL NOMBRE DEL FICHERO
existeFichero = dis.readBoolean();
if(!existeFichero){
System.out.println("No existe,escribe otro");
}
Alguna idea?
Valora esta pregunta


0