Java que recibe objetos sobre sockets

Estoy desarrollando un juego del ahorcado para la universidad. Y debe estar sobre sockets, con servidor y clientes. El juego funciona bien por ahora.

Pero cuando lo juegan dos personas, tratando de adivinar la misma palabra, necesito saber qué letra elige un usuario, para poder desactivar esa letra en la GUI del otro usuario.

Entonces, estoy tratando de enviar un objeto de carta con una identificación que deshabilitará el botón en el otro lado, primero enviaré un mensaje, advirtiendo que enviaré un objeto, para que no obtenga una excepción.

Pero solo lee los dos primeros objetos que envío, en el tercero recibo una excepción llamada java.io.StreamCorruptedException . Alguien sabe por qué?

    Sending:
    toClient= new DataOutputStream(socketConection.getOutputStream());
    toClient.writeBytes("VK_Letra\n");
    objectToClient= new ObjectOutputStream(socketConetion.getOutputStream());
    objectToClient.writeObject(new Letter());
    objectToClient.flush();

    Receiving:
    fromServer = new BufferedReader(new InputStreamReader(socketCliente.getInputStream()));
    objectFromServer = new ObjectInputStream(socketCliente.getInputStream());

public void run(){
    String str;
    try{
        while(true){
            str = fromServer.readLine();

            if(str.equals("VK_Letter")){
                Letter l = (Letter) objectFromServer.readObject();
                System.out.println(l.getLetter());
                button[l.getId()].setEnabled(false);
            }else{
                chat.append(str+ "\n");
                chat.setCaretPosition(chat.getDocument().getLength());
            }
        }
    }catch(IOException | ClassNotFoundException e){
        JOptionPane.showMessageDialog(/* Error Message */);
    }
}
Respuesta 1

El enfoque que usaría sería tener todo como un objeto para que solo envíe y reciba objetos. Luego, el objeto indicaría el mensaje real junto con cualquier parámetro o argumento o dato.

Estás mezclando entre una línea de lectura y obteniendo objetos.

Respuesta: 2

Estoy tratando de convertir el código scala anterior al código java 1.8. En scala, estaba usando un mapa para almacenar todas las referencias de funciones de clases respectivas. Como se muestra aquí en la clase Driver.scala ...

En EWS, el EmailMessage tiene un remitente (emailMessage.getSender ()) y puede tener archivos adjuntos (emailMessage.getAttachments ()). Estos archivos adjuntos pueden ser FileAttachment (para archivos) o ItemAttachment (para ...

Estoy tratando de obtener la lista de campos de la lista de objetos modelo usando la secuencia y el mapa a otra lista de objetos, pero me da el siguiente error. List <FinalTestModel> testModels2 = nuevo ...

Así que estoy tratando de extraer solo el nombre de ciertas imágenes con la extensión de imagen capturada junto con él. El único problema es que hay dos formas muy similares y dos formas de la forma en que ...