From b349963a49971e087bd595584f10398df874b60a Mon Sep 17 00:00:00 2001 From: KGreg <kgreg314@gmail.com> Date: Sat, 7 Apr 2018 18:11:35 +0200 Subject: [PATCH] ConnectionLost mechanism --- .../java/onlab/kvizclient/LobbyActivity.java | 22 +++++----------- .../java/onlab/kvizserver/LobbyActivity.java | 25 +++++++++++++------ 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/KvizClient/app/src/main/java/onlab/kvizclient/LobbyActivity.java b/KvizClient/app/src/main/java/onlab/kvizclient/LobbyActivity.java index c136d4f..1278593 100644 --- a/KvizClient/app/src/main/java/onlab/kvizclient/LobbyActivity.java +++ b/KvizClient/app/src/main/java/onlab/kvizclient/LobbyActivity.java @@ -87,7 +87,7 @@ public class LobbyActivity extends AppCompatActivity implements ServerConnection discovering = false; for (ServerModel server : servers) { - SendDisconnect(server); + SendConnectionLost(server); } for (Thread thread : threads) { @@ -318,7 +318,7 @@ public class LobbyActivity extends AppCompatActivity implements ServerConnection //nem sikerült } break; - case "Disconnect": + case "ConnectionLost": for (ServerModel server: servers) { if(server.getSocket() == serverModel.getSocket()) { @@ -332,18 +332,8 @@ public class LobbyActivity extends AppCompatActivity implements ServerConnection } break; - case "-1": - for (ServerModel server: servers) { - if(server.getSocket() == serverModel.getSocket()) - { - int position = servers.indexOf(serverModel); - updateConversationHandler.post(new updateUIThread(Operation.REMOVE_SERVER, serverModel)); - servers.remove(serverModel); - serverModel.getSocket().close(); - threads.remove(Thread.currentThread()); - Thread.currentThread().interrupt(); - } - } + case "Disconnect": + // break; default: break; @@ -405,13 +395,13 @@ public class LobbyActivity extends AppCompatActivity implements ServerConnection recyclerView.setAdapter(adapter); } - private void SendDisconnect(ServerModel server) + private void SendConnectionLost(ServerModel server) { try { PrintWriter out = new PrintWriter(new BufferedWriter( new OutputStreamWriter(server.getSocket().getOutputStream())), true); - out.println("Disconnect"); + out.println("ConnectionLost"); out.close(); } catch (IOException e) { diff --git a/KvizServer/app/src/main/java/onlab/kvizserver/LobbyActivity.java b/KvizServer/app/src/main/java/onlab/kvizserver/LobbyActivity.java index 26b667c..ae0cc29 100644 --- a/KvizServer/app/src/main/java/onlab/kvizserver/LobbyActivity.java +++ b/KvizServer/app/src/main/java/onlab/kvizserver/LobbyActivity.java @@ -119,14 +119,14 @@ public class LobbyActivity extends AppCompatActivity { registred = false; for (ClientModel client : allclients) { - SendDisconnect(client); + SendConnectionLost(client); } - /* + for (Thread thread : threads) { thread.interrupt(); } - */ + } super.onPause(); @@ -266,7 +266,7 @@ public class LobbyActivity extends AppCompatActivity { } else { - params[0] = "Disconnect"; + params[0] = "ConnectionLost"; } switch (params[0]) { @@ -293,12 +293,13 @@ public class LobbyActivity extends AppCompatActivity { } out.println("Connect##Ok!"); break; - case "Disconnect": + case "ConnectionLost": for (ClientModel client : clients) { if (client.getClientsocket() == clientSocket) { int position = clients.indexOf(client); updateConversationHandler.post(new updateUIThread(Operation.REMOVE_CLIENT, Integer.toString(position))); clients.remove(client); + allclients.remove(client); clientSocket.close(); threads.remove(Thread.currentThread()); Thread.currentThread().interrupt(); @@ -307,6 +308,16 @@ public class LobbyActivity extends AppCompatActivity { } }; break; + case "Disconnect": + for (ClientModel client : clients) { + if (client.getClientsocket() == clientSocket) { + int position = clients.indexOf(client); + clients.remove(client); + updateConversationHandler.post(new updateUIThread(Operation.REMOVE_CLIENT, Integer.toString(position))); + break; + } + }; + break; default: out.println("Unknown Message!"); @@ -366,13 +377,13 @@ public class LobbyActivity extends AppCompatActivity { recyclerView.setAdapter(adapter); } - private void SendDisconnect(ClientModel client) + private void SendConnectionLost(ClientModel client) { try { PrintWriter out = new PrintWriter(new BufferedWriter( new OutputStreamWriter(client.getClientsocket().getOutputStream())), true); - out.println("Disconnect"); + out.println("ConnectionLost"); out.close(); } catch (IOException e) { -- GitLab