Kostaga / RMI-Messaging-App

Simple project about server-client communication where the client can create an account, send/read/delete messages to/from other clients using RMI.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RMI-Client-Server-Messaging

Σύντομη επεξήγηση κλάσεων

Interface

RMI

Υλοποιεί το RMI και περιέχει μέσα τις δηλώσεις που χρησιμοποιούν οι Clients οι οποιες υλοποιούνται στο αρχείο RMIImpl.

Κλάσεις

RMIImpl:

Στη κλάση αυτή υλοποιούνται οι λειτουργίες απο το RMI interface καθώς επίσης δημιουργούνται κάποιες βοηθητικές συναρτήσεις για έλεγχο εγκυρότητας δεδομένων (username, authToken), όπως και για παραγωγή τυχαίου 4-ψηφιου authToken. Κάθε μέθοδος αντιστοιχεί σε ένα input που μπορεί να δώσει ο χρήστης (1-6). Τέλος, πέρα απο τις βοηθητικές συναρτήσεις, κρατάμε σε ένα HashMap key->value pairs, με κλειδία τα authToken των χρηστών και values το Account το κάθε χρήστη.

Αccount:

Η κλάση Account αντιπροσωπεύει έναν λογαριασμό χρήστη. Υλοποιεί τη διεπαφή Serializable για τη σειριοποίηση αντικειμένων. Κάθε λογαριασμός χρήστη σχετίζεται με ένα μοναδικό όνομα χρήστη, ένα authToken για έλεγχο ταυτότητας και ένα messageBox για την αποθήκευση μηνυμάτων.

Message:

Η κλάση Message αντιπροσωπεύει ένα μήνυμα ενός χρήστη. Υλοποιεί τη διεπαφή Serializable για τη σειριοποίηση αντικειμένων Περιέχει πληροφορίες σχετικά με ένα μήνυμα, συμπεριλαμβανομένου του αποστολέα, του παραλήπτη, του σώματος του μηνύματος (body), της κατάστασης ανάγνωσης και ενός μοναδικού αναγνωριστικού μηνύματος (messageId).

Client:

Η κλάση αυτή υλοποιεί τον client της εφαρμογής. Κάνει Locate το registry στο port που ακούει ο server και στη συνέχεια αναλόγως με το input που δίνεται (από 1-6) εκτελείται και η εκάστοτε λειτουργία που έχει υλοποιηθεί στο RMIImpl. Ο χρήστης ενημερώνεται σε περίπτωση που κάτει πάει στραβά κατα την εισαγωγή των δεδομένων.

Server:

Η κλάση αυτή υλοποιεί τον server της εφαρμογής. Ο server συνδέεται στο RMI registry και μέσω αυτού εξυπηρετεί τους Client. Χρησιμοποιεί το port που του δίνεται στην εκτέλεση και ο χρήστης ενημερώνεται σε περίπτωση που κάτι πάει στραβά ή δωθεί λάθος port σαν input.

About

Simple project about server-client communication where the client can create an account, send/read/delete messages to/from other clients using RMI.


Languages

Language:Java 100.0%