Preparación del software de mensajería instantánea LAN
El siguiente es el código del cliente:
importar java.awt.*;
importar java.awt.event.*;
importar java.io.IOException;
importar java.net.
la clase pública ChatClient extiende el marco {
Socket s = null
<; p > DataOutputStream dos = nuloDataInputStream dis = nulo
privado booleano bConnected = falso
TextField tfTxt = new TextField(); >
TextArea taContent = new TextArea();
Thread tRecv = new Thread(new RecvThread());
public static void main(String[] args) {< / p>
new ChatClient().launchFrame();
}
public void launchFrame() {
setLocation(400,400); p >
this.setSize(300,300);
agregar(tfTxt, BorderLayout.SOUTH);
agregar(taContent,BorderLayout.NORTH);
nuevo ChatClient().NORTH);
pack();
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
desconectar();
System.exit(0);
//super.windowClosing(e);
}
}) ;
tfTxt.addActionListener(new TFListener());
setVisible(true);
connect();
tRecv.start();
//new Thread( new RecvThread()).start(); abrir no se puede imprimir entre sí Cliente
> }
public void connect() {
prueba {
s = new Socket("127.0.0.1",8888);
dos = nuevo DataOutputStream(s. getOutputStream());
tRecv.getOutputStream());
dis = nuevo DataInputStream(s.getInputStream());
System.out.println("Conectando!");
bConnected = true;
} captura (U
nknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void desconectar() {
prueba {
dos.close();
dis.
}catch (IOException e) {
e.printStackTrace();
}
/* p>
/*
p>
prueba {
bConnected = false;
tRecv.join();
}catch (InterruptedException e) {
e.printStackTrace();
}finalmente {
}
*/
}
la clase privada TFListener implementa ActionListener {
public void actionPerformed(ActionEvent e) {
String str = tfText.getText() .trim();
tfText. setText("");
tfText.getText().trim();
}
}
Debes ejecutar. El servidor puede realizar operaciones de puerto de escucha, esperar a que el cliente se conecte y luego podrás chatear.