Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package br.com.uol.xpg.wyalves.chat2;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.io.OutputStreamWriter;
- import java.io.Writer;
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.util.ArrayList;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import javax.swing.JLabel;
- import javax.swing.JOptionPane;
- import javax.swing.JTextField;
- public class Server extends Thread {
- private static ArrayList<BufferedWriter> clients;
- private static ServerSocket server;
- private Socket client;
- private String name;
- private InputStream in;
- private InputStreamReader inr;
- private BufferedReader bfr;
- public Server(Socket client) {
- this.client = client;
- try {
- in = client.getInputStream();
- inr = new InputStreamReader(in);
- bfr = new BufferedReader(inr);
- } catch (Exception e1) {
- Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, e1);
- }
- }
- public void run() {
- try {
- OutputStream out = this.client.getOutputStream();
- Writer outw = new OutputStreamWriter(out);
- BufferedWriter bfw = new BufferedWriter(outw);
- clients.add(bfw);
- String msg = name = bfr.readLine();
- while (!"Sair!".equalsIgnoreCase(msg) && msg != null) {
- msg = bfr.readLine();
- sendToAll(bfw, msg);
- System.out.println(msg);
- }
- } catch (Exception e2) {
- Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, e2);
- }
- }
- private void sendToAll(BufferedWriter bwSaida, String msg) {
- try {
- BufferedWriter bwS;
- for (BufferedWriter bw : clients) {
- bwS = bw;
- if (!(bwSaida == bwS)) {
- bw.write(name + " -> " + msg + "\r\n");
- bw.flush();
- }
- }
- } catch (IOException e3) {
- Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, e3);
- }
- }
- public static void main(String[] args) {
- try {
- JLabel lblMsg = new JLabel("Porta do Servidor: ");
- JTextField txtPort = new JTextField("12345");
- Object[] texts = { lblMsg, txtPort };
- JOptionPane.showMessageDialog(null, texts);
- server = new ServerSocket(Integer.parseInt(txtPort.getText()));
- clients = new ArrayList<BufferedWriter>();
- JOptionPane.showMessageDialog(null, "Servidor ativo na porta: " + txtPort.getText());
- while (true) {
- System.out.println("Aguradando conexão...");
- Socket client = server.accept();
- System.out.println("Cliente conectado...");
- Thread t = new Server(client);
- t.start();
- }
- } catch (Exception e4) {
- Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, e4);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement