Agregue comentarios detallados al código de la sala de chat de Java y proporcione ideas de diseño. Bueno más 100 puntos.
importar java.net.*;
importar java.awt.*;
importar javax.swing.*;
importar java.awt.event.*;//Introducir el paquete.
clase pública ChatClient {
public static void main(String[] args) {
ChatClient cc = new ChatClient();
cc.receive();
}
JTextField jtf; // Barra de texto
JTextArea jta; // Campo de texto.
Socket s; // Cliente
PrintWriter out // Flujo de salida
BufferedReader en; ; // Flujo de entrada
public ChatClient() {
JFrame frame = new JFrame ("ChatClient"); //ventana
frame.setSize(400) , 300); //Tamaño
jta = new JTextArea(); //Campo de texto
jta.setEditable(false); //No editable
jtf = new JTextField(); //Barra de archivos
jtf.addActionListener(new ActionListener() { //Agregar un oyente.
public void actionPerformed(ActionEvent arg0) { p>
send(); //Llamar al método send()
}
});
frame.getContentPane().add( new JScrollPane(jta)); //Agregar barra de desplazamiento
frame.getContentPane().add(jtf, "South"); //Agregar barra de texto
frame.setDefaultCloseOperation(JFrame) .EXIT_ON_CLOSE); //Cerrar la ventana.
frame.setVisible(true); //Se puede mostrar.
intente {
s = new Socket("127.0.0.1", 9000); //conéctese al socket del servidor("hostname", número de puerto);
in = new BufferedReader(new InputStreamReader(s. getInputStream())); //crear flujo de entrada
out = new PrintWriter(s. getOutputStream()); //crear flujo de entrada e. printStackTrace();
}
}
}
public void run() { // Debe implementar su método run() .
while (true) {
try {
String str = in.readLine() //Obtener el mensaje del lado del cliente.
if (str == null) //Regresar si no hay mensaje.
Regresar;
Iterador it = list.iterator() //Recorrer la lista .
while (it.hasNext()) { //Si la lista tiene el siguiente
Socket socket = (Socket) (it. next()); está lleno de socket almacenado
PrintWriter o = new PrintWriter(socket.getOutputStream());
Devuelve si no hay ningún mensaje. flush(); // clear
}
} catch (IOException e) {
// TODO genera automáticamente el bloque catch
// e.printStackTrace();
Retorno;
}
}
}
}
}