Advertisement
Guest User

Servidor

a guest
Oct 19th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.10 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package jogodavelha;
  7.  
  8. import java.io.IOException;
  9. import java.io.PrintWriter;
  10. import java.net.ServerSocket;
  11. import java.net.Socket;
  12. import java.util.ArrayList;
  13. import java.util.List;
  14. import java.util.Scanner;
  15. import java.util.logging.Level;
  16. import java.util.logging.Logger;
  17.  
  18. /**
  19.  *
  20.  * @author Vinícius Resende
  21.  */
  22. public class Servidor {
  23.     List<PrintWriter> clientes = new ArrayList<> (); // cada um fica responsavel por mandar msg pra 1 cliente
  24.     List<Thread> threads = new ArrayList<>(); // cada thread fica responsavel por escutar 1 cliente
  25.     boolean end = false;
  26.    
  27.     private class EscutaCliente implements Runnable {
  28.         Scanner leitor;
  29.        
  30.         public EscutaCliente(Socket socket) throws IOException {
  31.              leitor = new Scanner(socket.getInputStream());
  32.         }
  33.         @Override
  34.         public void run() {
  35.             String s;
  36.             while ((s = leitor.nextLine()) != null) { // fico escutando o cliente
  37.                 if(s.equals("Encerrar")) { // n ta funcionando pra parar o servidor
  38.                     System.exit(0);
  39.                 }
  40.                 for(PrintWriter p: clientes){// repasso a msg pra todos os jogadores
  41.                     p.println(s);
  42.                     p.flush(); // garantir q enviou a msg
  43.                 }
  44.             }
  45.         }
  46.     }
  47.     public Servidor() throws IOException {
  48.         ServerSocket server = new ServerSocket(5000);
  49.         while (true) {
  50.             Socket socket = server.accept(); // aceito conexão
  51.             Thread t = new Thread(new EscutaCliente(socket)); // crio thread pra ficar escutando esse cliente
  52.             t.start();
  53.             threads.add(t);
  54.             clientes.add(new PrintWriter(socket.getOutputStream())); // add na minha lista pra enviar msgs pros clientes dela
  55.         }
  56.     }
  57.     public static void main(String... args) throws IOException {
  58.         new Servidor();
  59.     }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement