Omitir navegación.
Inicio

Aplicacion Cliente - Servidor

Imagen de SebaMinguez

Correspondiente a la Clase del 13 de abril.

Para crear dos aplicaciones que se comuniquen entre si mediante el protocolo TCP/IP podemos recurrir a las clases Socket y ServerSocket.

Por ejemplo un ejemplo basico de una aplicación que escucha conexiones y escribe las lineas recibidas en un archivo:

import java.util.Scanner;
import java.io.*;
import java.net.*;
 
public class Servidor {
	public static void main(String[] args) {
/** La manipulación de socket y archivos puede generar excepciones por lo que se hace necesario
un bloque try / catch a los efectos practicos. Ignorarlo en la comprensión del código */
		try {
			ServerSocket servidor = new ServerSocket (4000);
			Socket w = servidor.accept(); /* Este metodo abre un socket a la espera de nuevas conexiones */
			Scanner s = new Scanner( w.getInputStream()); /*Similar al ingreso por teclado, esta vez desde el socket */
 
/** Indicar el path correctamente donde se pueda escribir (\ para windows) */
			PrintStream p = new PrintStream("/home/sad/Escritorio/TestJava.txt");
 
			String eof = s.nextLine();
			while(!eof.equals("FIN")){ /*leer linea a linea hasta la linea FIN */
        		p.print(eof);
        		eof = s.nextLine();
			}
			p.close();
			w.close();
			servidor.close();
		} catch (UnknownHostException e){
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
 
	}
}

Y un ejemplo basico de un cliente para el servidor anterior que lee un archivo local y lo envia linea a linea al servidor.

import java.util.Scanner;
import java.net.*;
import java.io.*;
 
public class Cliente {
	public static void main(String[] args) {
		try {
		Socket s = new Socket("127.0.0.1", 4000);
		PrintStream p = new PrintStream(s.getOutputStream());
		Scanner t = new Scanner(System.in);
 
		System.out.println("Ingrese el path del archivo");
		String path = t.nextLine();
		System.out.println("El archivo a leer es " + path);
		FileInputStream f = new FileInputStream(path);
 
		t = new Scanner(f);
		String linea = t.nextLine();
		while (linea !=  null) {
			p.println(linea);
			linea = t.nextLine();
		}
		System.out.println("Finalizando envio de archivo");
		p.println("FIN");
		s.close();
		p.close();
		f.close();
		} catch (UnknownHostException e){
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

Trackback URL for "Aplicacion Cliente - Servidor"

http://www.odiolasllaves.com.ar/trackback/97

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de *KoNe*

"critica"

Hola seba... vos me dijiste, mira y critica... ahora yo pregunto, que queres que te diga??? esta todo muy lindo pero no se nada de java corazon ;), Besos!