/** * Title: Multiserver

* Description:

* Copyright:

* Company:

* @author * @version 1.0 */ /** * Title: Servidor de Chat

* Description:

* Copyright: Copyright (c) David Marques e Carlos Coutinho

* Company:

* @author David Marques e Carlos Coutinho * @version 1.0 */ package MultiServer; import java.net.*; import java.io.*; import javax.swing.UIManager; import java.awt.*; class MultiServer extends Thread { boolean packFrame = false; ServerSocket server; public static Socket sock; public static int totcon = 0; static int MAX_CONECTIONS= 100; static Server[] users = new Server[MAX_CONECTIONS]; static String[] nomes = new String[MAX_CONECTIONS]; PrintWriter pw; public AtividServer frame; //Construct the application MultiServer()throws Exception { AtividServer frame = new AtividServer(); //Validate frames that have preset sizes //Pack frames that have useful preferred size info, e.g. from their layout if (packFrame) { frame.pack(); } else { frame.validate(); } //Center the window Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = frame.getSize(); if (frameSize.height > screenSize.height) { frameSize.height = screenSize.height; } if (frameSize.width > screenSize.width) { frameSize.width = screenSize.width; } frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); frame.setVisible(true); server = new ServerSocket(5555); frame.txtativ.setText("Servidor Iniciado na porta 5555\n"); try { while (true) { sock = server.accept(); totcon++; users[totcon-1]=new Server(sock, totcon-1, this, frame); } } catch (Exception erro) { frame.txtativ.append("\nErro1: " + erro); } finally { server.close(); } } //Main method public static void main(String[] args)throws Exception { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch(Exception e) { e.printStackTrace(); } new MultiServer(); } /* synchronized void escreve(String msg) throws Exception { frame.txtativ.append(msg); } */ synchronized void sendtoall(int ID,String msg) throws Exception { int r; for(r=0; r