Hola:
Que yo sepa, sockets y swing no tienen nada que ver. Simplemente un pequeño detalle que quizás sea lo que te está pasando. En Swing, cuando muestras una ventana modal, el código se queda parado hasta que se cierra la ventana. Si estás haciendo algo como esto
Código:
bucle
recibir mensaje de socket
mostrarlo en ventana modal
fin bucle
hasta que no cierres la ventana, no recibirás el mensaje. Suele ser buena idea crear un hilo aparte sólo para recibir los mensajes del socket y cuando tengas que mostrar el contenido del mensaje en una ventana, llamar a SwingUtilites.invokeLater(), que cambia al hilo de refresco de ventanas
Código:
Thread hiloAtenderSocket = new Thread () {
public void run() {
bucle {
mensaje = leer mensaje de socket;
SwingUtilites.invokeLater ( new Runnable () {
public void run () {
ventana mostar mensaje
}
}
}
}
}
hiloAtenderSocket.start();
Se bueno.