Skip to content

A server-client system implemented using sockets. Each request the server receives is handled with threads.

Notifications You must be signed in to change notification settings

nikos258/uni-5-networks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 

Repository files navigation

uni-5-networks

Εργασία Δικτυακού προγραμματισμού

Σκοπός του project είναι η κατασκευή ενός συστήματος πελάτη-εξυπηρετητή με χρήση Sockets (Sockets-I/O streams-Threads). Ο εξυπηρετητής μπορεί να διαχειρίζεται παράλληλα τις αιτήσεις από τους πελάτες με τη βοήθεια νημάτων.

Έχουν υλοποιηθεί τέσσερις κλάσεις: Message, Account, Client και Server όπως ζητούνται στο έγγραφο απαιτήσεων.

Η κλάση Message αναπαριστά ένα μήνυμα που στέλνεται από έναν λογαριασμό σε έναν άλλον και περιέχει απλές μεθόδους και χαρακτηριστικά.

Η κλάση Account αντιπροσωπεύει τον λογαριασμό ενός χρήστη. Περιέχει μια λίστα με εισερχόμενα μηνύματα, το γραμματοκιβώτιο του χρήστη, τα οποία μπορεί μέσω κατάλληλων μεθόδων να προσπελαύνει και να επεξεργάζεται.

Η κλάση Client αποτελεί την υλοποίηση του πελάτη. Εκτελείται με την εξής εντολή: java client <FN_ID> Κατά την εκτέλεση αρχικά συνδέεται με τον εξυπηρετή στη σωστή διεύθυνση IP και το σωστό port, όπως αυτά δίνονται, στη συνέχεια στέλνει το αναγνωριστικό λειτουργίας μαζί με τις υπόλοιπες παραμέτρους λειτουργίας ως ενιαία συμβολοσειρά στον εξυπηρετητή, δέχεται την απάντησή του, την προβάλλει στο τερματικό και τερματίζει την εκτέλεση.

Η κλάση Server αποτελεί τον μοναδικό εξυπηρατητή του συστήματος. Διατηρεί μία λίστα με λογαριασμούς χρηστών, οι οποίοι χρειάζονται μοναδικούς αριθμούς αναγνώρισης, γι' αυτό και χρησιμοποιεί μια γεννήτρια κρυπτογραφικά ισχυρών αριθμών. Επίσης κρατά μια ακέραια μεταβλητή για την μονααδική απαρίθμηση των μηνυμάτων που στέλνονται. Για την διαχείριση των αιτημάτων κάθε πελάτη χρησιμοποιεί την εσωτερική κλάση ClientHandler. Ανάλογα με το αναγνωριστικό λειτουργίας καλεί την κατάλληλη μέθοδο και αποστέλλει την απάντησή του στον πελάτη, όπως αυτή ορίζεται στις απαιτήσεις.

Να σημειωθεί ότι η εκτέλεση των προγραμμάτων γινόταν στο περιβάλλον του IntelliJ μέσω του Run -> Edit Configurations.

About

A server-client system implemented using sockets. Each request the server receives is handled with threads.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages