Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package jogodavelha;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Scanner;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- /**
- *
- * @author Vinícius Resende
- */
- public class Servidor {
- List<PrintWriter> clientes = new ArrayList<> (); // cada um fica responsavel por mandar msg pra 1 cliente
- List<Thread> threads = new ArrayList<>(); // cada thread fica responsavel por escutar 1 cliente
- boolean end = false;
- private class EscutaCliente implements Runnable {
- Scanner leitor;
- public EscutaCliente(Socket socket) throws IOException {
- leitor = new Scanner(socket.getInputStream());
- }
- @Override
- public void run() {
- String s;
- while ((s = leitor.nextLine()) != null) { // fico escutando o cliente
- if(s.equals("Encerrar")) { // n ta funcionando pra parar o servidor
- System.exit(0);
- }
- for(PrintWriter p: clientes){// repasso a msg pra todos os jogadores
- p.println(s);
- p.flush(); // garantir q enviou a msg
- }
- }
- }
- }
- public Servidor() throws IOException {
- ServerSocket server = new ServerSocket(5000);
- while (true) {
- Socket socket = server.accept(); // aceito conexão
- Thread t = new Thread(new EscutaCliente(socket)); // crio thread pra ficar escutando esse cliente
- t.start();
- threads.add(t);
- clientes.add(new PrintWriter(socket.getOutputStream())); // add na minha lista pra enviar msgs pros clientes dela
- }
- }
- public static void main(String... args) throws IOException {
- new Servidor();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement