/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.server.conn;
import com.server.gui.ChatWithClientJFrame;
import com.server.gui.mngr.PanelManager;
import com.server.gui.ServerMainForm;
import com.server.monitor.ClientDesktopManager;
import com.server.voicechat.VoiceChat;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Hashtable;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Administrator
*/
public class ConnectionManager implements Runnable {
public static boolean serverStarted = false;
public static final int SERVER_PORT = 9000;
public static Hashtable connectedClients = new Hashtable();
public static Hashtable<String, ChatWithClientJFrame> chatClients =
new Hashtable<String, ChatWithClientJFrame>();
private ServerSocket serverSocket = null;
private ServerMainForm mainForm = null;
public static PanelManager panelManager = null;
public static ClientDesktopManager desktopManager = null;
public static VoiceChat voiceChat = null;
public ConnectionManager(ServerMainForm mainForm) {
this.mainForm = mainForm;
panelManager = new PanelManager(mainForm);
desktopManager = new ClientDesktopManager();
}
public void startServer() {
serverStarted = true;
Thread connectionThread = new Thread(this);
connectionThread.start();
}
public void run() {
try {
serverSocket = new ServerSocket(SERVER_PORT);
while (serverStarted) {
listenForClientConnection();
}
} catch (IOException ex) {
Logger.getLogger(ConnectionManager.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void listenForClientConnection() {
try {
Socket clientSocket = serverSocket.accept();
String clientAddress = clientSocket.getInetAddress().getHostAddress();
System.out.println(clientAddress);
ClientManager clientManager = new ClientManager(clientSocket);
Thread clientThread = new Thread(clientManager);
connectedClients.put(clientAddress, clientManager);
panelManager.addClientPanel(clientAddress);
clientThread.start();
} catch (IOException ex) {
Logger.getLogger(ConnectionManager.class.getName()).log(Level.SEVERE, null, ex);
}
}
}