Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/07/2011, 02:25
cucuru
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 9 meses
Puntos: 17
sockets y threads

hola! estoy intentando comunicar por sockets dos ordenadores.

LA comunicación funciona perfecta, pero quiero hacer que se pueda tanto recibir como transmitir siempre que se quiera, para ello creo dos thread, una receptora y otra transmisora:

Código:
public class transmisor extends Thread{

	Socket cliente;
	
	public transmisor(Socket Cliente){
		this.cliente=Cliente;
	}
	
	public void run(){
	
		while(cliente.isBound()){
			try{
			
				java.util.Scanner in = new java.util.Scanner(System.in);
				String enviar = in.nextLine();
				
				OutputStream bufferSalida = cliente.getOutputStream();  
				DataOutputStream datos = new DataOutputStream(bufferSalida);
				datos.writeUTF(enviar);
			} catch (Exception e){
				e.printStackTrace();
			}
		}	
		this.destroy();
	}	
}
Código:
public class receptor extends Thread{
	
	Socket cliente;
	
	public receptor(Socket Cliente){
		this.cliente=Cliente;
	}

	public void run(){
		while(cliente.isBound()){
			try{
				InputStream aux = cliente.getInputStream();
				DataInputStream flujo = new DataInputStream( aux );
	
				System.out.println("recibo: " + flujo.readUTF());
			} catch (Exception e){
				e.printStackTrace();
			}
		}
		this.destroy();
	}
}
Dice qeu destroy() está "deprecated" y me gustaría utilizar métodos acutalizados, pero todos loque ppongo que conozco, destroy(), stop(), nada, que "deprecated"... ¿Cómo puedo hacerlo?


Si no pongo nada, como el programa sale de l while() y acaba, el thread se eliminaría¿???

Gracias!

Última edición por cucuru; 01/07/2011 a las 02:37