Sala de chat de Java: ¿por qué recibo una SocketException?

Estoy haciendo una sala de chat usando conexiones simples de socket a socket. Tengo un servidor y un programa cliente. El servidor se ejecuta en el puerto 225, y luego cuando ejecuto el cliente en el puerto 225 para que puedan leer / escribir en los sockets, el cliente se detiene instantáneamente con el mensaje de error

java.net.SocketException: Connection resetJava Result: 1

¿Por qué está lanzando esta excepción? Se conecta, la línea se imprime en la consola, como se muestra:

try {
    client = new Socket(serverAdress, portNumber);
    System.out.println("Successful connection to server on port " + portNumber + ".");

Entonces, ¿por qué podría no ser capaz de conectarse?

Este es el rastro de excepción ...

java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at schoolroom10.SchoolRoomClient.SchoolRoomClientWindow.main(SchoolRoomClientWindow.java:85)

Este es mi código de servidor ...

public class SchoolRoomServer {

    // 'server' will create the server over the local port:
    static ServerSocket serverSocket = null;

    //Socket for listening:
    static Socket clientcommunicate = null;

    //portnum is the number of the local port. Change to required port before running.
    static int portnum = 225;

    public static void main(String[] args) throws IOException{
        try {
            serverSocket = new ServerSocket(portnum);
        clientcommunicate = serverSocket.accept();
            Communicate c = new Communicate(Communicate.server);
            Thread t = new Thread(c);
            t.start();
        } catch (UnknownHostException uhe) {
            System.err.println(uhe);
            System.exit(1);
        } catch (IOException ioe) {
            System.err.println(ioe);
            System.exit(1);
        }


    } 
}

class Communicate implements Runnable {
    public static Socket server;
    Communicate(Socket server) {
        Communicate.server = server;
    }
    public void run() {
        String in = "";
        try {
            //i/o for clients:
            PrintStream output = new PrintStream(server.getOutputStream());
            BufferedReader input = new BufferedReader(new InputStreamReader(server.getInputStream()));
            String message;

            //Message handling:
            while(((message = input.readLine()) != null) && (!in.equals("."))) {
                output.println(message);
            }
        } catch (IOException ioe) {
            System.err.println(ioe);
        }
    }
}
Respuesta 1

"Restablecer conexión" generalmente significa que ha escrito en una conexión que ya ha sido cerrada por el otro extremo. En términos generales, este es un error de protocolo de aplicación. Sin embargo, en algunas circunstancias, por ejemplo, cuando el par es un navegador, o posiblemente también en su caso, es solo una consecuencia inevitable del hecho de que el par puede optar por irse en cualquier momento. En estos casos, todo lo que puede hacer es cerrar el zócalo y olvidarse de la conexión.

Respuesta: 2

Necesito tu ayuda. Tengo un ejecutable en C llamado "generator.out" que es una función main () que recibe int argc y char * argv []. Los argumentos para esta función principal son un archivo (llamémoslo muestra ...

Estoy tratando de llamar: https://mechanicalturk.amazonaws.com/?Service=AWSMechanicalTurkRequester & AWSAccessKeyId = [ID de la clave de acceso del solicitante] & Version = 2012-03-25 & Operation = ...

Soy nuevo en el análisis DOM, su requisito es agregar los elementos en posiciones específicas en el archivo xml existente utilizando el analizador DOM. Obtendremos las posiciones y los nombres de los elementos que se agregarán, ...

Tengo este panel modal y quiero que el usuario pueda enviar una búsqueda desde él y luego obtener los resultados de esa búsqueda a continuación en el panel modal. Si es posible, alguien podría señalarme ...