Commit 9256c58b2a329ecfc0aa6100335cd6a3d9b20500

Authored by Imanol-Mikel Barba Sabariego
1 parent 77176d9b

git-svn-id: svn://imanolbarba.net/PAD@28 c2ee353e-ed0d-4329-bf56-03aec153487f

JChatClient/bin/client
No preview for this file type
JChatClient/src/client.cpp
@@ -71,7 +71,8 @@ bool connect(Socket& s) @@ -71,7 +71,8 @@ bool connect(Socket& s)
71 while(response == "CHATFULL") 71 while(response == "CHATFULL")
72 { 72 {
73 cout << "Chatroom is full, please wait..." << endl; 73 cout << "Chatroom is full, please wait..." << endl;
74 - s >> response; 74 + s.Close();
  75 + return false;
75 } 76 }
76 if(response != "CHATOK") 77 if(response != "CHATOK")
77 { 78 {
@@ -172,11 +173,17 @@ int main() @@ -172,11 +173,17 @@ int main()
172 pthread_attr_t attr; 173 pthread_attr_t attr;
173 pthread_attr_init(&attr); 174 pthread_attr_init(&attr);
174 pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE); 175 pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
  176 + int retries = 3;
175 while (!finished) 177 while (!finished)
176 { 178 {
177 - if(!connect(s)) 179 + while(!connect(s))
178 { 180 {
179 - exit(-1); 181 + if((--retries) <= 0)
  182 + {
  183 + cout << "Exiting" << endl;
  184 + exit(-1);
  185 + }
  186 + cout << "Couldn't connect to chatroom, retrying..." << endl;
180 } 187 }
181 pthread_mutex_lock(&mutex); 188 pthread_mutex_lock(&mutex);
182 sArgs->mutex = &mutex; 189 sArgs->mutex = &mutex;
JChatServer/bin/pad/prac2/JChat.class
No preview for this file type
JChatServer/bin/pad/prac2/Server.class
No preview for this file type
JChatServer/src/pad/prac2/JChat.java
@@ -19,7 +19,7 @@ public class JChat @@ -19,7 +19,7 @@ public class JChat
19 in.close();*/ 19 in.close();*/
20 ip = "localhost"; 20 ip = "localhost";
21 port = 3001; 21 port = 3001;
22 - roomSize = 3; 22 + roomSize = 2;
23 final Server serv = new Server(ip,port,roomSize); 23 final Server serv = new Server(ip,port,roomSize);
24 Runtime.getRuntime().addShutdownHook(new Thread() 24 Runtime.getRuntime().addShutdownHook(new Thread()
25 { 25 {
@@ -34,6 +34,7 @@ public class JChat @@ -34,6 +34,7 @@ public class JChat
34 /* 34 /*
35 * TODO 35 * TODO
36 * 36 *
  37 + * room is full
37 * CTRL+C 38 * CTRL+C
38 */ 39 */
39 } 40 }
JChatServer/src/pad/prac2/Server.java
@@ -52,7 +52,6 @@ public class Server @@ -52,7 +52,6 @@ public class Server
52 try 52 try
53 { 53 {
54 MySocket incoming = ss.accept(); 54 MySocket incoming = ss.accept();
55 - System.out.println("Accepted connection from " + incoming.getInetAddress());  
56 startWorker(incoming); 55 startWorker(incoming);
57 } 56 }
58 catch(IOException ioExc) 57 catch(IOException ioExc)
@@ -75,14 +74,9 @@ public class Server @@ -75,14 +74,9 @@ public class Server
75 try 74 try
76 { 75 {
77 s.sendMsg("CHATFULL"); 76 s.sendMsg("CHATFULL");
78 - synchronized(this)  
79 - {  
80 - availableWorkers.await();  
81 - }  
82 - }  
83 - catch(InterruptedException intExc)  
84 - {  
85 - intExc.printStackTrace(); 77 + s.close();
  78 + lock.unlock();
  79 + return;
86 } 80 }
87 catch(IOException ioExc) 81 catch(IOException ioExc)
88 { 82 {