Problema fastidioso con sockets y threads COMPLETO
Publicado por Antonio (8 intervenciones) el 27/03/2007 12:47:44
Buenas a todos,
Tengo un problema que me lleva fastidiando unos días, y es que tengo un ServerSocket escuchando en un puerto determinado y que se arranca con un Thread en el método init() del servlet de mi aplicación
public void run () {
ServerSocket sock = ServidorSocket.CrearSocketServidor ();
while (true) {
socket = ServidorSocket.ServirSocketServidor (sock);
}
}
Pues el problema es que cuando ejecuto un socket cliente en el puerto del ServerSocket, consigo enviar datos pero no recibirlos. Es decir, puedo enviar datos del Socket, pero cuando lo intento recibir del ServerSocket no recibo nada, a pesar de que dentro del ServerSocket observo como dice que se conecta al cliente.
OutputStream os = soc.getOutputStream();
ObjectOutputStream salida = new ObjectOutputStream(os);
InputStream is = soc.getInputStream ();
ObjectInputStream entrada = new ObjectInputStream(is);
salida.writeUTF ("fichero");
String dato = entrada.readUTF();
¿Alguien sabe que es lo que estoy haciendo mal? Yo creo que debe de estar relacionado con los threads, porque haciendo pruebas sin threads me funcionaba bien.
Un saludo.
Tengo un problema que me lleva fastidiando unos días, y es que tengo un ServerSocket escuchando en un puerto determinado y que se arranca con un Thread en el método init() del servlet de mi aplicación
public void run () {
ServerSocket sock = ServidorSocket.CrearSocketServidor ();
while (true) {
socket = ServidorSocket.ServirSocketServidor (sock);
}
}
Pues el problema es que cuando ejecuto un socket cliente en el puerto del ServerSocket, consigo enviar datos pero no recibirlos. Es decir, puedo enviar datos del Socket, pero cuando lo intento recibir del ServerSocket no recibo nada, a pesar de que dentro del ServerSocket observo como dice que se conecta al cliente.
OutputStream os = soc.getOutputStream();
ObjectOutputStream salida = new ObjectOutputStream(os);
InputStream is = soc.getInputStream ();
ObjectInputStream entrada = new ObjectInputStream(is);
salida.writeUTF ("fichero");
String dato = entrada.readUTF();
¿Alguien sabe que es lo que estoy haciendo mal? Yo creo que debe de estar relacionado con los threads, porque haciendo pruebas sin threads me funcionaba bien.
Un saludo.
Valora esta pregunta


0