hola a todos, que tal? espero que mejor que yo. Vereis tengo un cliente y un servidor (muy muy sencillos ambos) programados con sockets en udp. Lo ejecuto y el cliente al parecer no recibe nada del servidor y no entiendo por queé! Me estoy volviendo loca, he seguido paso a paso las instrucciones de un manualillo pero nada. EL servidor si que debe recibir lo que le manda el cliente pero cuando el servidor contesta al cliente este no ve nada. Os pego el código a ver si me podeis orientar a ver donde esta el error.
//EL SERVIDOR
public class ServidorChatUDP extends Thread {
private int puerto;
public ServidorChatUDP(int puerto){
this.puerto=puerto;
}
public void run(){
//String fraseCliente;
String fraseMayusculas;
byte[] datosRecibidos = new byte[255];
byte[] datosEnviar = new byte[255];
//Datagrama en el que se van a recibir los datos.
DatagramPacket paqueteRecibido = new DatagramPacket(datosRecibidos,datosRecibidos.lengt h);
InetAddress direccionIPcliente;
try{
DatagramSocket socketAcogida= new DatagramSocket(puerto);
while(true){
socketAcogida.receive(paqueteRecibido);
String fraseCliente= new String(paqueteRecibido.getData());
direccionIPcliente=paqueteRecibido.getAddress();
fraseMayusculas=fraseCliente.toUpperCase() + '\n';
datosEnviar=fraseMayusculas.getBytes();
DatagramPacket dp= new DatagramPacket(datosEnviar, datosEnviar.length, direccionIPcliente, puerto);
socketAcogida.send(dp);
}
}catch(Exception ex){
ex.printStackTrace();
}
}
}
//EL CLIENTE
public class ClienteChatUDP extends Thread{
private String ip;
private int puerto;
byte[] datosRecibidos = new byte[100];
byte[] datosEnviar = new byte[100];
InetAddress direccionIPcliente;
int puertoCliente;
public ClienteChatUDP(String ip,int puerto){
this.ip=ip;
this.puerto=puerto;
}
public void run(){
try{
//Se crea la variable paqueteRecibido que es el datagrama para almacenar la respuesta del servidor
DatagramPacket paqueteRecibido = new DatagramPacket(datosRecibidos, datosRecibidos.length);
DatagramSocket socketCliente = new DatagramSocket();
BufferedReader entradaDesdeUsuario= new BufferedReader(new InputStreamReader(System.in));
String frase=entradaDesdeUsuario.readLine();
direccionIPcliente = InetAddress.getByName("localhost");
datosEnviar= frase.getBytes();
DatagramPacket dp= new DatagramPacket(datosEnviar, datosEnviar.length, direccionIPcliente, puerto);
socketCliente.send(dp);
socketCliente.receive(paqueteRecibido);
String fraseModificada = new String(paqueteRecibido.getData());
System.out.println("DESDE EL SERVIDOR: " +fraseModificada);
socketCliente.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}