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!