Cliente Java: el servidor no repite la respuesta

//Editar 13:25 Consola de cliente

Connect to server<br />
Repsonded: Tue May 22 13:23:28 CEST 2012<br />
Disconnect to server<br />
Connect to server<br />
Not run: java.net.SocketException: Software caused connection abort: recv failed<br />
Disconnect to server<br />
Connect to server<br />
Not run: java.net.SocketException: Software caused connection abort: recv failed<br />
Disconnect to server<br />
Connect to server<br />
Repsonded: Tue May 22 13:23:38 CEST 2012<br />
Disconnect to server<br />
Connect to server<br />
Not run: java.net.SocketException: Software caused connection abort: recv failed<br />
Disconnect to server<br />
Connect to server<br />
Not run: java.net.SocketException: Software caused connection abort: recv failed<br />
Disconnect to server<br />
Connect to server<br />
Not run: java.net.SocketException: Software caused connection abort: recv failed<br />
Disconnect to server<br />
Connect to server<br />
Not run: java.net.SocketException: Software caused connection abort: recv failed<br />
Disconnect to server<br />
Connect to server<br />
Not run: java.net.SocketException: Software caused connection abort: recv failed<br />
Disconnect to server<br />
Connect to server<br />
Not run: java.net.SocketException: Software caused connection abort: recv failed<br />
Disconnect to server<br />
Connect to server<br />
Not run: java.net.SocketException: Software caused connection abort: recv failed<br />
Disconnect to server<br />
Connect to server<br />
Not run: java.net.SocketException: Software caused connection abort: recv failed<br />
Disconnect to server<br />
Connect to server<br />
Not run: java.net.SocketException: Software caused connection abort: recv failed<br />
Disconnect to server<br />
Connect to server<br />
Not run: java.net.SocketException: Software caused connection abort: recv failed<br />
Disconnect to server<br />

Consola del servidor

Server Initialized<br />
111111<br />
111111<br />
111111<br />
111111<br />
111111<br />
111111<br />
111111<br />
111111<br />
111111<br />
111111<br />
111111<br />
Error(run): java.net.SocketException: Connection reset by peer: socket write error<br />


Server load data and not return repead "Repsonded: Tue May 22 13:23:38 CEST 2012" or client not ouput print.

preguntado el 22 de mayo de 12 a las 09:05

Error del cliente: no se ejecuta: java.net.SocketException: socket cerrado -

1 Respuestas

El problema radica en la implementación de su servidor. No está haciendo un bucle en la declaración de ejecución, buscando nuevos mensajes entrantes desde esa conexión. Usted lee la información una vez y luego cierra la conexión en la declaración final:

 @Override
    public void run() {

        try {

            BufferedInputStream is = new BufferedInputStream(connection.getInputStream());
            InputStreamReader isr = new InputStreamReader(is);
            ...
        finally {
            try {
                connection.close();

Claro, su servidor tiene un bucle que verifica las solicitudes de conexión entrantes, por lo que esto funcionaría si el cliente intenta conectarse al servidor nuevamente después de enviar cada mensaje, pero su cliente solo envía una solicitud (al comienzo de la declaración principal).

Entonces, lo que le aconsejo que haga: del lado del servidor, configure las transmisiones, etc. en el run instrucción, y una vez que se configuran, ingrese un ciclo infinito con while(true), y en ese ciclo haga que el servidor lea del flujo de entrada, y si read() no devuelve nulo, imprime el mensaje. Esto hará que el servidor verifique los datos entrantes de ese cliente, una vez que obtenga una cadena que no sea nula, la imprimirá (y activará una respuesta si lo desea).

Lo mismo ocurre con el lado del cliente, necesita un ciclo que escuche los mensajes entrantes del servidor

contestado el 22 de mayo de 12 a las 10:05

Por favor, ¿podría decirme que reescriba todo el código? Ya tengo una ensalada con eso en la cabeza. Tratando de creer que durante mucho tiempo lo habría descubierto, pero me llevaría mucho tiempo y habría aprendido que algo más puede no soportar. Me puedes facilitar a mi mismo sufrimiento :) Si tienes un poco de tiempo te lo agradeceré. - Pater SVK

Lo averiguaste, ¡genial! No se necesitaban muchas modificaciones, pero eso aún puede ser molesto si no sabe qué buscar :) - John Snow

Ciertamente no fue difícil desde su perspectiva, pero no solo tenía buenas intenciones en PHP a Java y salté directamente al cliente <-> Servidor codificando directamente mientras enseño a otros y para mi inglés, también es una gran gloria. :-D . Esto me llevó a otros problemas pero no es fácil. - Pater SVK

Todavía me hace un problema leer los datos recibidos del servidor si Client.class se importó a otra clase. Ni siquiera puedo usar una función estática para leer los datos recibidos que podría usar globalmente. - Pater SVK

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.