/** * 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