CLASSE CLIENTE:
package redes;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.io.PrintWriter;
import java.net.Socket;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class ChatCliente extends JFrame {
JTextField textoParaEnviar;
PrintWriter escritor;
Socket socket;
String nome;
public ChatCliente(String nome) {
super("Chat : " + nome);
this.nome = nome;
Font fonte = new Font("Serif", Font.PLAIN, 26);
textoParaEnviar = new JTextField();
textoParaEnviar.setFont(fonte);
JButton botao = new JButton("Enviar");
botao.setFont(fonte);
botao.addActionListener(new EnviarListener());
Container envio = new JPanel();
envio.setLayout(new BorderLayout());
envio.add(BorderLayout.CENTER, textoParaEnviar);
envio.add(BorderLayout.EAST, botao);
getContentPane().add(BorderLayout.SOUTH, envio);
configurarRede();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 90);
setVisible(true);
}
private class EnviarListener implements java.awt.event.ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
escritor.println(nome + " : " + textoParaEnviar.getText());
escritor.flush();
textoParaEnviar.setText("");
textoParaEnviar.requestFocus();
}
}
public void configurarRede(){
try{
socket = new Socket("127.0.0.1", 5000);
escritor = new PrintWriter(socket.getOutputStream());
} catch (Exception e){}
}
public static void main(String[] args) {
new ChatCliente("Ricardo");
new ChatCliente("Sandra");
}
}
CLASSE SERVIDOR:
package redes;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class ChatServer {
public ChatServer() {
ServerSocket server;
int ad = 1;
try {
server = new ServerSocket(5000);
while (ad == 1) {
Socket socket = server.accept();
new Thread(new EscutaCliente(socket)).start();
}
} catch (IOException e) {
}
}
private class EscutaCliente implements Runnable {
Scanner leitor;
public EscutaCliente(Socket socket) {
try {
leitor = new Scanner(socket.getInputStream());
} catch (Exception e) {
}
}
@Override
public void run() {
try {
String texto = leitor.nextLine();
while (texto != null) {
System.out.println(texto);
}
} catch (Exception x) {
}
}
}
public static void main(String[] args) {
new ChatServer();
}
}