Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/09/2008, 16:15
razer
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 2 meses
Puntos: 6
Dialogo cliente servidor

Hola, estoy tratando de hacer una aplicacion cliente servidor.
La idea es que cuando el cliente se conecte al servidor, el servidor lo salude.
Y luego, si el cliente le manda datos determinados, en base a esos datos el servidor responde de distinta manera.

Digamos algo asi como el dialogo entre cliente y servidor mediante un protocolo.

Bueno, lo que logre hacer es que el cliente se conecte al servidor y el servidor lo salude, pero no entiendo porque no funciona cuando le mando el mensaje "como estas", el servidor me deberia responder "bien", y sin embargo no recibo respuestas. (la idea es que funcione no solo cuando le mando este mensaje al principio sino en cualquier momento que se lo mande mientras estoy conectado)

Les muestro el codigo:

Servidor
Código:
try {
		    final int port= 43332;
		    
		        ServerSocket servidor = new ServerSocket( port);
		        
		        while( true ) {
		            
		            Socket cliente= servidor.accept();
		            PrintWriter mensaje = new PrintWriter( cliente.getOutputStream() );
		            mensaje.println( "Hola" );
		            
		         	    InputStream entrada = cliente.getInputStream(); //Leo lo que me dijo
		         	    String csays = entrada.toString();
		         	    
		         	    if(csays == "como estas")
		         	    {
		         	    	escritor.println( "Bien" );
		         	    }
		      
		            
		            escritor.close();
		            cliente.close();
		            
		        } 
		}
		
		catch (IOException e) {
		}

Y el del cliente es este:
Código:
try {
			Socket skCliente = new Socket( "127.0.0.1" , 43332 );
			DataOutputStream  salida1 = new DataOutputStream(skCliente.getOutputStream());

			String mensaje= "como estas\n";
			
			salida1.write(mensaje.getBytes());
			
			int leido = 0;
			byte datosBytes[]=new byte[256];
			DataInputStream  entrada = new DataInputStream(skCliente.getInputStream());
		    System.out.println ("_______________________________________________");
	        while ((leido=entrada.read(datosBytes,0,256))!=-1)
	        {
		        if (leido > 0)
	               System.out.println (new String(datosBytes,0,(leido-1)));
	        }
			
		}
		
		catch (IOException e) {
		}
Segun esto, me deberia responder todo junto: Hola y debajo Bien.
OK, Solamente me responde Hola.

Alguien sabe porque?

PD: El entrada.toString() esta completamente mal :P estaba probando como detectar la info que me mando el cliente.... pero asi no es.
La idea es, como dije antes, cada vez que cualquiera se conecte al servidor y mande "como estas", responda "bien"

Última edición por razer; 12/09/2008 a las 19:38