From 6d384512a6cf2e9c210fd759f5305e5db7ef73a2 Mon Sep 17 00:00:00 2001 From: Metatheria Date: Mon, 15 Feb 2021 16:09:01 +0100 Subject: [PATCH] outdoor users(17) --- Projet.jar | Bin 19393 -> 18794 bytes src/chat/ClientWindow.java | 2 +- src/chat/ConnectNotification.java | 11 ++--------- src/chat/DisconnectNotification.java | 5 ++--- src/chat/Message.java | 5 ++--- src/chat/NetworkClient.java | 22 ++++++++++++++++------ src/chat/Notification.java | 16 ++++++---------- src/chat/ReceiveThread.java | 27 +++++++++++---------------- src/chat/User.java | 9 ++++++++- 9 files changed, 48 insertions(+), 49 deletions(-) diff --git a/Projet.jar b/Projet.jar index 5cbe56cb96ea3cab3086bcfe199204411c6cbe3d..4959554a24eb26e089adcced1972a723d8bd6eec 100644 GIT binary patch delta 11855 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 R_6Korq#PTZx5Phh{~yG0lz9LE delta 12547 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 G9{&r98N(a^ diff --git a/src/chat/ClientWindow.java b/src/chat/ClientWindow.java index 8497f2e..78216e9 100644 --- a/src/chat/ClientWindow.java +++ b/src/chat/ClientWindow.java @@ -137,7 +137,7 @@ public class ClientWindow implements ActionListener { if("".compareTo(message) != 0) { messageField.setText(""); - network.send(new Message(network.getUser(), message, false)); + network.send(new Message(network.getUser(), message)); } } } diff --git a/src/chat/ConnectNotification.java b/src/chat/ConnectNotification.java index 699c3ad..957daea 100644 --- a/src/chat/ConnectNotification.java +++ b/src/chat/ConnectNotification.java @@ -1,16 +1,9 @@ package chat; public class ConnectNotification extends Notification { - private Boolean outdoor; - ConnectNotification (User in_author, Boolean in_redirected, Boolean in_outdoor) + ConnectNotification (User in_author) { - author = in_author; - redirected = in_redirected; - outdoor = in_outdoor; + super(in_author); } - public Boolean isOutdoor() - { - return outdoor; - } } diff --git a/src/chat/DisconnectNotification.java b/src/chat/DisconnectNotification.java index 17cdef8..d1bb8f6 100644 --- a/src/chat/DisconnectNotification.java +++ b/src/chat/DisconnectNotification.java @@ -1,9 +1,8 @@ package chat; public class DisconnectNotification extends Notification { - DisconnectNotification (User in_author, Boolean in_redirected) + DisconnectNotification (User in_author) { - author = in_author; - redirected = in_redirected; + super(in_author); } } \ No newline at end of file diff --git a/src/chat/Message.java b/src/chat/Message.java index 6d4331b..b2cb704 100644 --- a/src/chat/Message.java +++ b/src/chat/Message.java @@ -6,11 +6,10 @@ import java.util.*; public class Message extends Notification { private String text; - Message (User in_author, String in_text, Boolean in_redirected) + Message (User in_author, String in_text) { - author = in_author; + super(in_author); text = in_text; - redirected = in_redirected; } public void setText(String new_text) { diff --git a/src/chat/NetworkClient.java b/src/chat/NetworkClient.java index e21a6ba..121ab90 100644 --- a/src/chat/NetworkClient.java +++ b/src/chat/NetworkClient.java @@ -38,7 +38,7 @@ public class NetworkClient { NetworkClient(JTextArea in_chatText, JTextArea in_knownUsersPanel) { - user = new User(""); + user = null; chatText = in_chatText; knownUsersPanel = in_knownUsersPanel; known_users = new ArrayList(); @@ -123,11 +123,11 @@ public class NetworkClient { System.out.println(usernameList.length + " users currently connected"); for(String u:usernameList) { - known_users.add(new User (u)); + known_users.add(new User (u, false)); } for(String u:outdoorUsernameList) { - known_outdoor_users.add(new User (u)); + known_outdoor_users.add(new User (u, true)); } for(String a:addressList) { @@ -193,9 +193,9 @@ public class NetworkClient { } } - user.setName(username); + user = new User(username, outdoor); - send(new ConnectNotification(user, false, outdoor)); + send(new ConnectNotification(user)); } return connected; @@ -229,7 +229,7 @@ public class NetworkClient { void disconnect() { - send(new DisconnectNotification(user, false)); + send(new DisconnectNotification(user)); try { Thread.sleep(1000); @@ -244,6 +244,16 @@ public class NetworkClient { } catch(IOException e){} } + for(Socket s:outdoor_dest_sockets) + { + try + { + s.close(); + } + catch(IOException e){} + } + dest_sockets.clear(); + outdoor_dest_sockets.clear(); } User getUser() diff --git a/src/chat/Notification.java b/src/chat/Notification.java index ab148f6..a631b26 100644 --- a/src/chat/Notification.java +++ b/src/chat/Notification.java @@ -4,8 +4,12 @@ import java.io.Serializable; abstract class Notification implements Serializable{ - protected User author; - protected Boolean redirected; + private User author; + + Notification(User in_author) + { + author = in_author; + } public void setAuthor(User new_author) { @@ -15,12 +19,4 @@ abstract class Notification implements Serializable{ { return author; } - public Boolean isRedirected() - { - return redirected; - } - public void setRedirected(Boolean in_redirected) - { - redirected = in_redirected; - } } diff --git a/src/chat/ReceiveThread.java b/src/chat/ReceiveThread.java index b7b6a4a..d25e104 100644 --- a/src/chat/ReceiveThread.java +++ b/src/chat/ReceiveThread.java @@ -45,16 +45,16 @@ class ReceiveThread extends Thread { ObjectInputStream in = new ObjectInputStream(socket.getInputStream()); Notification notif = (Notification) in.readObject(); - if(!(notif.getAuthor().equals(user)) && !notif.isRedirected()) + if(!(notif.getAuthor().equals(user)) && !(notif.getAuthor().isOutdoor() && !isOutdoor)) { for(Socket s:outdoor_dest_sockets) { try { ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream()); - notif.setRedirected(true); + out.writeObject(notif); - notif.setRedirected(false); + } catch(IOException e){} } @@ -67,11 +67,12 @@ class ReceiveThread extends Thread { try { ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream()); - notif.setRedirected(true); + out.writeObject(notif); } catch(IOException e){} } + } else { @@ -89,7 +90,7 @@ class ReceiveThread extends Thread { known_users.remove(dn.getAuthor()); known_outdoor_users.remove(dn.getAuthor()); - if(!dn.isRedirected() && !dn.getAuthor().equals(user)) + /*if(!dn.getAuthor().equals(user) && !(dn.getAuthor().isOutdoor() && !isOutdoor)) { exit = true; @@ -98,7 +99,7 @@ class ReceiveThread extends Thread { dest_sockets.remove(socket); else outdoor_dest_sockets.remove(socket); - } + }*/ } else if (notif instanceof ConnectNotification) @@ -106,7 +107,7 @@ class ReceiveThread extends Thread { ConnectNotification cn = (ConnectNotification) notif; displayArea.append(cn.getAuthor().getName() + " has joined the chat.\n"); - if(cn.isOutdoor()) + if(cn.getAuthor().isOutdoor()) { if(!known_outdoor_users.contains(cn.getAuthor())) { @@ -138,17 +139,11 @@ class ReceiveThread extends Thread { } } } - catch(EOFException e) {} - catch(SocketException e) - { - if(!isOutdoor) - dest_sockets.remove(socket); - else - outdoor_dest_sockets.remove(socket); - } catch(Exception e) { - e.printStackTrace(); + System.out.println("Socket closed"); + dest_sockets.remove(socket); + outdoor_dest_sockets.remove(socket); } } } diff --git a/src/chat/User.java b/src/chat/User.java index 698a554..00d115e 100644 --- a/src/chat/User.java +++ b/src/chat/User.java @@ -6,12 +6,14 @@ import java.util.*; public class User implements Comparable, Serializable{ private String name; + private Boolean outdoor; // private String address; - public User(String in_name) + public User(String in_name, Boolean in_outdoor) { name = in_name; + outdoor = in_outdoor; // address = in_address; } @@ -23,6 +25,10 @@ public class User implements Comparable, Serializable{ { return name; } + public Boolean isOutdoor() + { + return outdoor; + } /*public void setAddress(String new_address) { name = new_address; @@ -45,4 +51,5 @@ public class User implements Comparable, Serializable{ { return name.compareTo(otherUser.getName()); } + } \ No newline at end of file