Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Kerber0 en 5 Diciembre 2008, 00:32 am



Título: Socket, flujo de texto sin interrupciones
Publicado por: Kerber0 en 5 Diciembre 2008, 00:32 am
Buenas gente, el socket que hice unicamente tiene que hablar el cliente, luego el servidor, luego el cliente, luego el servidor.. no puedo lograr que cada uno lo haga cuando quieras

Servidor
Código:
import java.net.*;
import java.io.*;

public class Servidor
 {
 InputStreamReader isr;
 OutputStreamWriter osw;
 String linea;
 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
 String msg=null;


public Servidor()
 {
  try
   {
     System.out.println("Creando servidor puerto 555...");
     ServerSocket servidor = new ServerSocket(555);
     System.out.println("Esperando llamadas...");
     Socket s = servidor.accept();
     System.out.println("Cliente se ha conectado!");

     while(true)
{
isr = new InputStreamReader(s.getInputStream());
osw = new OutputStreamWriter(s.getOutputStream());

char[] mensaje = new char[256];
isr.read(mensaje,0,255);

String msg = new String(mensaje).trim();
System.out.println("Cliente dijo: "+msg);


if (msg.compareTo("end")==0)
  {
   System.out.println("Cliente ha cerrado la conexion, el programa se cerrara");
   isr.close();
       osw.close();
   servidor.close();
   break;
  }


System.out.println("Ingrese texto:");
linea=br.readLine();
osw.write(linea);
osw.flush();
System.out.println("Esperando respuesta del cliente...");

}

  }
 catch(IOException ex)
  {
   System.out.println("Error");
  }
 }


public static void main(String arg[])
 {
new Servidor();
 }

}

El codigo del cliente es muy parecido. Existe alguna forma en la que el Servidor y el Cliente puedan interactuar sin necesidad de esperar una respuesta del otro?

Muchas gracias!


Título: Re: Socket, flujo de texto sin interrupciones
Publicado por: juancho77 en 5 Diciembre 2008, 03:12 am
Una opcion seria usar Threads ejecutandose en paralelo. Uno se mantendria a la espera de datos, y el otro a la espera de instrucciones del programa local (este ultimo es por el que enviarias la informacion).


Título: Re: Socket, flujo de texto sin interrupciones
Publicado por: Kerber0 en 5 Diciembre 2008, 05:49 am
Gracias voy a profundizar por ahi!

Saludos