@@ -528,6 +528,8 @@ public class PaginaChat extends JPanel implements ActionListener, ChangeListener
int t = chatTabs.indexOfTab(numeTab);
int ts = chatTabs.getSelectedIndex();
+ System.out.println("PaginaChat.adaugaMesajInTab " + numeTab + " t " + t + " ts " + ts + " class " + cssClass + " msg " + msg);
+
if (numeTab.equals("#server")) {
mesajeServer.adaugaMesaj(msg, cssClass);
if (t == -1) {
@@ -677,9 +679,12 @@ public class PaginaChat extends JPanel implements ActionListener, ChangeListener
public void ev_mesajPrimit (String dela, String catre, String msg) {
if (dela.equals("#server") || dela.equals(myApp.getNumeUtilizator())) {
+ System.out.println("PaginaChat.ev_mesajPrimit dela = " + dela);
return;
}
+ System.out.println("PaginaChat.ev_mesajPrimit dela " + dela + " catre " + catre + " msg " + msg);
+
String msgf = "<span class='nume'>" + htmlEscape(dela) + "</span>: " + htmlEscape(msg);
if (catre.equals("#server")) {
@@ -66,6 +66,8 @@ public class appClient extends Thread {
serverPort = port;
numeUtilizator = nume;
+ System.out.println("appClient.conectare " + numeUtilizator + " " + serverAdresa + " " + serverPort);
+
// pornire conexiune socket
try {
clientSocket = new Socket(serverAdresa, serverPort);
@@ -109,6 +111,8 @@ public class appClient extends Thread {
return;
}
+ System.out.println("appClient.run start " + numeUtilizator);
+
myApp.afisarePaginaChat();
if (!trimiteComanda("/conectare " + numeUtilizator)) {
@@ -135,6 +139,8 @@ public class appClient extends Thread {
cmd = null;
}
+ System.out.println("appClient.run end " + numeUtilizator);
+
serverConectat = false;
try {
@@ -170,6 +176,8 @@ public class appClient extends Thread {
return false;
}
+ System.out.println("appClient.trimiteComanda " + cmd);
+
try {
clientOut.println(cmd);
} catch (Exception ex) {
@@ -191,6 +199,8 @@ public class appClient extends Thread {
String[] arg = cmd.split(" ");
String fn = arg[0]; // functia, primul element
+ System.out.println("appClient.procesareComanda " + fn + " cmd " + cmd);
+
if ("/conectare".equals(fn) && arg.length == 2) {
ev_conectareClient(arg[1]);
} else if ("/deconectare".equals(fn) && arg.length == 2) {
@@ -235,6 +245,7 @@ public class appClient extends Thread {
// la server.
private synchronized void ev_conectareClient (String nume) {
+ System.out.println("appClient.ev_conectareClient " + nume);
if (nume.equals("#server")) {
System.err.println("appClient.ev_conectareClient numele este invalid: " + nume);
return;
@@ -249,6 +260,8 @@ public class appClient extends Thread {
}
private synchronized void ev_deconectareClient (String nume) {
+ System.out.println("appClient.ev_deconectareClient " + nume);
+
if (nume.equals("#server") || nume.equals(numeUtilizator)) {
deconectare();
myApp.ev_deconectareClient(nume);
@@ -293,6 +306,8 @@ public class appClient extends Thread {
}
private synchronized void ev_listaClienti (String[] raw) {
+ System.out.println("appClient.ev_listaClienti");
+
if (!raw[0].equals("/lista")) {
System.err.println("appClient.ev_listaClienti raw[0] != /lista");
return;
@@ -307,6 +322,8 @@ public class appClient extends Thread {
}
private void ev_mesajPrimit (String dela, String catre, String msg) {
+ System.out.println("appClient.ev_mesajPrimit dela " + dela + " catre " + catre);
+
if (dela.equals(catre) || dela.equals("#server")) {
System.err.println("appClient.ev_mesajPrimit eronat dela " + dela + " catre " + catre);
} else if (catre.equals("#server") || dela.equals(numeUtilizator) || catre.equals(numeUtilizator)) {
@@ -321,6 +338,8 @@ public class appClient extends Thread {
if (!serverConectat) {
return;
}
+ System.out.println("appClient.deconectare " + numeUtilizator);
+
trimiteComanda("/deconectare " + numeUtilizator);
serverConectat = false;
@@ -106,24 +106,28 @@ public class appMain implements Runnable {
// metoda permite deconectarea de la serverul de chat.
public void deconectareServer () {
+ System.out.println("appMain.deconectareServer");
if (getServerPornit()) {
serverLocal.oprire();
}
}
protected void deconectareServerCompleta () {
+ System.out.println("appMain.deconectareServerCompleta");
serverLocal = null;
serverLocal = new appServer(this);
}
// metoda permite deconectarea clientului de la serverul de chat.
public void deconectareClient () {
+ System.out.println("appMain.deconectareClient");
if (getServerConectat()) {
clientServer.deconectare();
}
}
protected void deconectareClientCompleta () {
+ System.out.println("appMain.deconectareClientCompleta");
clientServer = null;
clientServer = new appClient(this);
}
@@ -165,6 +169,7 @@ public class appMain implements Runnable {
// de la server, de catre clientul conectat.
protected void ev_conectareClient (String nume) {
+ System.out.println("appMain.ev_conectareClient " + nume);
if (paginaActiva.equals("PaginaChat")) {
chatpag.ev_conectareClient(nume);
} else {
@@ -173,6 +178,7 @@ public class appMain implements Runnable {
}
protected void ev_deconectareClient (String nume) {
+ System.out.println("appMain.ev_deconectareClient " + nume);
if (paginaActiva.equals("PaginaChat")) {
chatpag.ev_deconectareClient(nume);
if (nume.equals(getNumeUtilizator())) {
@@ -211,6 +217,7 @@ public class appMain implements Runnable {
}
protected void ev_mesajPrimit (String dela, String catre, String msg) {
+ System.out.println("appMain.ev_mesajPrimit dela " + dela + " catre " + catre);
if (paginaActiva.equals("PaginaChat")) {
chatpag.ev_mesajPrimit(dela, catre, msg);
} else {
@@ -219,6 +226,7 @@ public class appMain implements Runnable {
}
protected void ev_listaClienti () {
+ System.out.println("appMain.ev_listaClienti");
if (paginaActiva.equals("PaginaChat")) {
chatpag.ev_listaClienti();
} else {
@@ -234,6 +242,7 @@ public class appMain implements Runnable {
};
public void iesireApp () {
+ System.out.println("appMain.iesireApp");
deconectareClient();
deconectareServer();
System.exit(0);
@@ -28,6 +28,8 @@ public class appServer extends Thread {
// pornirea serverului
public boolean pornire (int p) {
+ System.out.println("appServer.pornire " + p);
+
if (serverPornit || srvSocket != null || p < portMin || p > portMax) {
System.err.println("appServer.pornire: serverul este pornit deja");
return false;
@@ -40,6 +42,7 @@ public class appServer extends Thread {
try {
srvSocket = new ServerSocket(p);
+ System.out.println("appServer.pornire: srvSocket ready port " + p);
} catch (Exception ex) {
System.err.println("appServer.pornire: eroare pornire server. " + ex);
ex.printStackTrace();
@@ -62,6 +65,8 @@ public class appServer extends Thread {
appServerThread thread = null;
String nume = "";
+ System.out.println("appServer.run start");
+
// asculta la infinit conexiuni
while (serverPornit && !srvSocket.isClosed()) {
nume = "client-" + (System.currentTimeMillis()/1000) + "-" + listaClienti.size();
@@ -82,6 +87,8 @@ public class appServer extends Thread {
thread = null;
}
+ System.out.println("appServer.run end");
+
if (serverPornit) {
oprire();
}
@@ -98,6 +105,8 @@ public class appServer extends Thread {
String[] arg = cmd.split(" ");
String fn = arg[0]; // functia, primul element
+ System.out.println("appServer.procesareComanda " + t.getNumeUtilizator() + " fn " + fn + " cmd " + cmd);
+
if ("/conectare".equals(fn) && arg.length == 2) {
ev_conectareClient(cmd, t, arg[1]);
} else if ("/deconectare".equals(fn) && arg.length == 2) {
@@ -122,6 +131,8 @@ public class appServer extends Thread {
return false;
}
+ System.out.println("appServer.trimiteComanda " + cmd);
+
for (appServerThread t : listaClienti.values()) {
t.trimiteComanda(cmd);
}
@@ -144,6 +155,8 @@ public class appServer extends Thread {
return;
}
+ System.out.println("appServer.ev_conectareClient " + nume);
+
String numeVechi = t.getNumeUtilizator();
if (!numeVechi.equals(nume)) {
t.setNumeUtilizator(nume);
@@ -172,6 +185,8 @@ public class appServer extends Thread {
return;
}
+ System.out.println("appServer.ev_deconectareClient " + nume);
+
String numeThread = t.getNumeUtilizator();
if (!numeThread.equals(nume) || !listaClienti.containsKey(numeThread)) {
return;
@@ -222,6 +237,8 @@ public class appServer extends Thread {
private void ev_mesajPrimit (String cmd, appServerThread t, String dela, String catre) {
String nume = t.getNumeUtilizator();
+ System.out.println("appServer.ev_mesajPrimit(" + nume + ") dela " + dela + " catre " + catre);
+
if (!t.getClientInitializat() || !listaClienti.containsKey(nume) || !nume.equals(dela) || catre.equals(dela) || (!catre.equals("#server") && !listaClienti.containsKey(catre))) {
System.err.println("appServer.ev_mesajPrimit(" + nume + "): clientul nu este initializat sau a trimis un mesaj invalid.");
return;
@@ -254,15 +271,21 @@ public class appServer extends Thread {
// metoda este chemata atunci cand un client se opreste.
protected synchronized void clientIesire (appServerThread t) {
+ System.out.println("appServer.clientIesire " + t.getNumeUtilizator());
+
if (listaClienti.containsKey(t.getNumeUtilizator())) {
listaClienti.remove(t.getNumeUtilizator());
}
+ System.out.println("appServer.clientIesire listaClienti.size() = " + listaClienti.size());
+
if (serverPornit && t.getClientInitializat()) {
trimiteComanda("/deconectare " + t.getNumeUtilizator());
}
if (serverPornit && listaClienti.isEmpty()) {
+ System.out.println("appServer.clientIesire oprire server");
+
if (srvSocket != null && !srvSocket.isClosed()) {
try {
srvSocket.close();
@@ -285,6 +308,8 @@ public class appServer extends Thread {
return;
}
+ System.out.println("appServer.oprire");
+
trimiteComanda("/deconectare #server");
serverPornit = false;
@@ -29,6 +29,7 @@ public class appServerThread extends Thread {
server = srv;
client = sock;
numeUtilizator = nume;
+ System.out.println("appServerThread initializare " + nume);
if (!server.getServerPornit()) {
System.err.println("appServerThread: serverul nu este pornit");
@@ -39,6 +40,7 @@ public class appServerThread extends Thread {
try {
out = new PrintWriter(client.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(client.getInputStream()));
+ System.out.println("appServerThread initializare reusita " + numeUtilizator);
} catch (Exception ex) {
System.err.println("appServerThread: esec initializare. " + ex);
@@ -65,10 +67,13 @@ public class appServerThread extends Thread {
// metoda care ruleaza in thread separat
public void run () {
if (!server.getServerPornit() || client == null || client.isClosed() || out == null || in == null) {
+ System.err.println("appServerThread.run esec " + numeUtilizator);
oprire();
return;
}
+ System.out.println("appServerThread.run " + numeUtilizator);
+
// primire comenzi de la client
String cmd = null;
while (server.getServerPornit() && in != null && client != null && !client.isClosed()) {
@@ -88,6 +93,8 @@ public class appServerThread extends Thread {
cmd = null;
}
+ System.out.println("appServerThread.run end " + numeUtilizator);
+
oprire();
}
@@ -98,6 +105,8 @@ public class appServerThread extends Thread {
return false;
}
+ System.out.println("appServerThread.trimiteComanda " + numeUtilizator + " " + cmd);
+
try {
out.println(cmd);
} catch (Exception ex) {
@@ -146,6 +155,8 @@ public class appServerThread extends Thread {
// oprire conexiune cu client
public void oprire () {
+ System.out.println("appServerThread.oprire " + numeUtilizator);
+
try {
if (in != null) {
in.close();