Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > Problema con sockets

Hola a todos!!
Mi problema es que necesito establecer una conexion a traves de sockets, y que el cliente envie cadenas al servidor.
No se como establecer que el servidor permanezca activo hasta un cierto evento y no que al recibir la primera cadena ya se cierre.
Ademas en este servidor existe un problema con los if porque hasta que no envio 2 veces play no responde, 3 veces pause, 4 veces record.. ¿Sabeis cual es el problema?
El codigo del cliente no lo adjunto porque es largo y creo que los problemas se centran en el servidor.
Gracias


public class mainServer {

public static void main(String[] args) {
// TODO Auto-generated method stub

miServidor servidor= new miServidor();

servidor.crearServidor();

servidor.crearSocket();

servidor.recibeCadena();

servidor.cerrandoSocket();


}
}

public class miServidor {

static ServerSocket miServidor;
static Socket socketServicio ;// object socket que acepta clientes
static DataInputStream entrada;//entrada informacion del cliente
static DataOutputStream salida;


void crearServidor(){
try{
System.out.println("Creando Socket....");
miServidor= new ServerSocket(8787);
}
catch(IOException e){
System.out.println(e);
}
}

void crearSocket(){
try{
System.out.println("Aceptando cliente");
socketServicio=miServidor.accept();
}
catch (IOException e){
System.out.println(e);
}
}
void recibeCadena(){
try{
System.out.println("Preparando entrada");
entrada =new DataInputStream(socketServicio.getInputStream());

if (entrada.readUTF().equals("play") )
{
System.out.println("Se ha pulsado " +entrada.readUTF());

}
else if(entrada.readUTF().equals("pause") ){

System.out.println("Se ha pulsado " +entrada.readUTF());
}
else if (entrada.readUTF().equals("record") ){
System.out.println("Se ha pulsado " +entrada.readUTF());
}
else if (entrada.readUTF().equals("salida") ){
System.out.println("Se ha pulsado " +entrada.readUTF());
}
}
catch(IOException e){
System.out.println(e);
}
}
void enviandoCadena(){
try{
System.out.println("Preparando para enviar");
salida=new DataOutputStream(socketServicio.getOutputStream());
System.out.println("Enviando la cadena ");
salida.writeUTF("Esto te lo envia el servidor!!!!!!!!!!!!");
}
catch(IOException e){
System.out.println(e);
}
}
void cerrandoSocket(){
System.out.println("Cerrando todo");
try{

socketServicio.close();
miServidor.close();
}
catch(IOException e){
System.out.println(e);
}

}

}

mayo 14, 2012 | Unregistered Commenterjaime