From 5a759ae02f8f74be6099dde00a28eb9dd288fbcf Mon Sep 17 00:00:00 2001 From: Parmis Jamami Date: Tue, 23 Jun 2026 23:40:42 +0330 Subject: [PATCH] implement ServerListener --- .../chat/Client/ServerListener.java | 42 ++++++++++++++----- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/university/chat/Client/ServerListener.java b/src/main/java/com/university/chat/Client/ServerListener.java index b609d74..9df619e 100644 --- a/src/main/java/com/university/chat/Client/ServerListener.java +++ b/src/main/java/com/university/chat/Client/ServerListener.java @@ -1,20 +1,40 @@ package com.university.chat.Client; -public class ServerListener implements Runnable{ - // TODO: store the ObjectInputStream from the user socket - // (this should be the same input stream the - // chatClient created when connecting) +import com.university.chat.Common.ChatMessage; +import com.university.chat.Common.FileMessage; + +import java.io.ObjectInputStream; + +public class ServerListener implements Runnable { + + private ObjectInputStream in; + + public ServerListener(ObjectInputStream in) { + this.in = in; + } @Override public void run() { try { - // TODO: In an infinite loop read objects from the server - // - if it's a ChatMessage -> print ": " - // - if it's a FileMessage -> print that a file was received - // (filename + sender), it's already - // saved to disk by the server. - } catch (Exception e){ + while (true) { + Object object = in.readObject(); + + if (object instanceof ChatMessage msg) { + System.out.println(msg.getSender() + ": " + msg.getContent()); + } + + if (object instanceof FileMessage fileMsg) { + System.out.println( + "File received: " + + fileMsg.getFilename() + + " from " + + fileMsg.getSender() + ); + } + } + + } catch (Exception e) { System.out.println("Disconnected from server"); } } -} +} \ No newline at end of file