Sockets!!!!!!!!!

Clara
16 de Agosto del 2005
Hola a todos!
Tengo un applet que se comunica con un servlet mediante los flujos DataInputStream/DataOutputStream y a su vez el servlet se comunica con un servidor hecho en Visual Basic 6.0 mediante sockets.
Mi problema es que la comunicación por sockets no va bien. El envío de datos q se realiza desde el applet al servlet y del servlet al servidor en VB va más o menos bien, pero si intento que se reciban datos desde el servidor al servlet y del servlet al applet me sale el mensaje de error java.io.EOFException.
No sé si es problema de los sockets, del servlet o de qué será, pues no sé muy bien cómo va lo del tema de los sockets en Java. Del servidor en VB no creo que sea, pues hice un cliente en VB para probar que esa parte estuviese bien y funciona correctamente.
Si alguien pudiese ayudarme lo agradecería mucho. Dejo el código del servlet por si ayuda a ver mi problema.
El código del servlet es el siguiente:
import java.awt.*;
import java.net.*;
import java.io.*;
import java.util.*;
import java.lang.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ServletSocket extends HttpServlet
{
private static final String CONTENT_TYPE = "text/plain";
//Vble para el socket
Socket conexion = null;
//Puerto
private static final int PORTNUM = 4444;
//Flujos de I/O para tratamiento de datos entre Applet-Servlet y Servlet-Socket.
DataOutputStream outputToApplet = null, outputToSocket = null;
DataInputStream inputFromApplet = null, inputFromSocket = null;
public void init(ServletConfig config) throws ServletException
{
super.init(config);
try
{
//Se realiza la conexión con el socket.
conexion = new Socket(InetAddress.getLocalHost(), PORTNUM);
//Apertura flujos comunicación por sockets con VB.
outputToSocket = new DataOutputStream (conexion.getOutputStream());
inputFromSocket = new DataInputStream (conexion.getInputStream());
}
catch (IOException ex) {
ex.printStackTrace();
}
}
public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
{
res.setContentType(CONTENT_TYPE);
try
{
//Aperturas de flujos para comunicación Applet-Servlet.
inputFromApplet = new DataInputStream(req.getInputStream());
outputToApplet = new DataOutputStream(res.getOutputStream());
}
catch (IOException ex)
{
ex.printStackTrace();
}
try {
/**Recepción de datos desde Applet.*/
//Lectura del vector desde el Applet.
String FromApplet = inputFromApplet.readUTF();
//Código de comprobación.
FromApplet = FromApplet.concat("Applet");

/**Tratamiento de socket con aplicación VB.*/
//Envío de datos al Servidor VB.
outputToSocket.writeUTF(FromApplet);
//FromApplet = "";
//Recepción de datos desde el Servidor VB.
//Código de comprobación.
String ToApplet = "Prueba";
outputToApplet.writeUTF(ToApplet);
ToApplet = inputFromSocket.readUTF();
//Código de comprobación.
ToApplet = ToApplet.concat("Socket" + FromApplet);

/**Envío de datos al Applet.*/
outputToApplet.writeUTF(ToApplet);
} catch (Exception e) {
e.printStackTrace();
}
}
/**Limpiar recursos*/
public void destroy() {
super.destroy();
try {
inputFromApplet.close();
outputToApplet.flush();
outputToApplet.close();
outputToSocket.flush();
outputToSocket.close();
inputFromSocket.close();

conexion.close();
}
catch (IOException ex) {
ex.printStackTrace();
}
}
}

jose carlos
16 de Agosto del 2005
estoy teniendo el mismo problema, como lo solucionaste?