Κατανεμημένα Συστήματα

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Κατανεμημένα Συστήματα"

Transcript

1 Κατανεμημένα Συστήματα Java Sockets, Threads, Ασκήσεις Χρήστος Γκουμόπουλος Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων

2 SOCKETS 2

3 Διαδιεργασιακή επικοινωνία με Sockets application layer Client Process Socket transport layer (TCP/UDP) network layer (IP) link layer (e.g. ethernet) physical layer ίκτυο ίκτυο application layer Server Process Socket transport layer (TCP/UDP) network layer (IP) link layer (e.g. ethernet) physical layer Διεπαφή (προγραμματιστική αφαίρεση) που παρέχει το ΛΣγια την πρόσβαση στο υποσύστημα επικοινωνίας (π.χ. UDP/TCP) Υλοποιούμε Ι/Ο στο δίκτυο μέσω τωνsockets περίπου όπως υλοποιούμε Ι/Ο στο δίσκο μέσω των περιγραφέων αρχείων.

4 Επικοινωνιακή σύνδεση Η επικοινωνιακή σύνδεση μεταξύ δύο διεργασιών περιγράφεται με μια πεντάδα της μορφής: (πρωτόκολλο, τοπική-διεύθυνση, τοπική-διεργασία, απομακρυσμένη-διεύθυνση, απομακρυσμένη-διεργασία). Το πρωτόκολλοαναφέρεται στο σύνολο των κανόνων που διέπουν την επικοινωνία (π.χ. UDP, TCP). Η τοπική-διεύθυνση και απομακρυσμένη-διεύθυνση, προσδιορίζουν τις IP διευθύνσεις των Η/Υ, στους οποίους εκτελούνται οι διεργασίες. Η τοπική-διεργασία και απομακρυσμένη-διεργασία, προσδιορίζουν την ταυτότητα των διεργασιών που θα επικοινωνούν (έναν 16-bit ακέραιο αριθμό, ο οποίος αναπαριστά την θύρα (port number) της διεργασίας) Το socket περιγράφει το ένα άκρο (endpoint)μιας επικοινωνιακής σύνδεσης. Περιλαμβάνει την τριάδα (πρωτόκολλο, διεύθυνση, αριθμό θύρας) για το ένα άκρο της επικοινωνιακής σύνδεσης. H διαδιεργασιακή επικοινωνία με sockets απαιτεί την μετάδοση μηνυμάτων μεταξύ ενός socket στη μια διεργασία και ενός socket στην άλλη διεργασία. 4

5 ΤCP/IP επικοινωνιακή σύνδεση Προσδιορισμός της διεύθυνσης της μηχανής στο δίκτυο IP address Ταυτότητα διεργασίας Port number To ζευγάρι (IP address, Port number) ορίζει ένα socketaddress Client socket address :23405 Server socket address :80 Client Connection socket pair ( :23405, :80) Server (port 80) Client host address H θύρα είναι µια εφήµερη θύρα που έχει δοθεί από το ΛΣ Server host address Η θύρα 80 είναι µια καλά καθορισµένη θύρα για πρόσβαση σε Web servers

6 Sockets στην Java Συλλογή από κλάσεις και interfaces στο πακέτο java.net Βασικές κλάσεις για TCP επικοινωνία: Socket: client-side& server-side ServerSocket: server-side Βασικές κλάσεις για UDP επικοινωνία : DatagramSocket DatagramPacket

7 Κλάση Socket (βασικές μέθοδοι) Socket(InetAddress address, int port) Δημιουργεί ένα TCP stream socket και το συνδέει στο port και την ΙΡ διεύθυνση που καθορίζονται ως παράμετροι. Socket(String host, int port) Δημιουργεί ένα TCP stream socket και το συνδέει στο port του host, του οποίου το όνομα καθορίζεται στις παραμέτρους. InputStream getinputstream() Επιστρέφει ένα stream εισόδου για αυτό το socket. OutputStream getoutputstream() Επιστρέφει ένα stream εξόδου αυτού του socket InetAddress getlocaladdress() Επιστρέφει την τοπική διεύθυνση με την οποία το socket αρχικοποιήθηκε. int getlocalport() Επιστρέφει τον τοπικό αριθμό θύρας με τον οποίο το socket αρχικοποιήθηκε. InetAddress getinetaddress() Επιστρέφει την διεύθυνση του απομακρυσμένου Η/Υ στην οποία το τοπικό socket είναι συνδεδεμένο. int getport() Επιστρέφει τον αριθμό θύρας της απομακρυσμένης διεργασίας στο socket της οποίας το τοπικό socket έχει συνδεθεί. void close() Κλείνει αυτό το socket (απελευθερώνει το socket description). 7

8 Κλάση ServerSocket(βασικές μέθοδοι) ServerSocket(intport) Δημιουργεί ένα serversocketστη θύρα της οποίας ο αριθμός καθορίζεται απ την παράμετρο. Αν ο αριθμός είναι το 0, τότε αφήνεται στο σύστημα η επιλογή μιας ελεύθερης (μη χρησιμοποιούμενης) θύρας. ServerSocket(intport, intbacklog) Δημιουργεί ένα serversocketστην θύρα της οποίας ο αριθμός καθορίζεται απ την πρώτη παράμετρο, ενώ επιτρέπει τόσες συνδέσεις να περιμένουν στην ουρά, μέχρι να γίνουν αποδεκτές, όσες η δεύτερη παράμετρος. Socketaccept() Ακούει για πιθανή αίτηση σύνδεσης ενός πελάτη με τον server και την αποδέχεται. Ένα νέο socket αντικείμενο δημιουργείται και χρησιμοποιείται για την ανταλλαγή μηνυμάτων με τον πελάτη. void close() Κλείνει αυτό το server socket. InetAddressgetInetAddress() Επιστρέφει την τοπική διεύθυνση αυτού του server socket. intgetlocalport() Επιστρέφει τον αριθμό της θύρας που αυτό το server socket«ακούει». 8

9 I/O μέσω του Stream μηχανισμού Stream = γενερικός μηχανισμός για Ι/Ο δεδομένων Input Stream = αντικείμενο που μια εφαρμογή μπορεί να χρησιμοποιήσει για να διαβάσει μια ακολουθία δεδομένων Output Stream: αντικείμενο που μια εφαρμογή μπορεί να χρησιμοποιήσει για να γράψει μια ακολουθία δεδομένων 9

10 Java Streams Συλλογή από stream κλάσεις και interfaces στο πακέτο java.io Στην κορυφή της ιεραρχίας ορίζονται δυο abstract κλάσεις: InputStream OutputStream 10

11 Διάφορες κλάσεις τύπου Stream Byte Array Streams ByteArrayInputStream & ByteArrayOutputStream File Access Streams FileInputStream & FileOutputStream Filter Streams (wrappers σε κλάσεις Streams): FilterInputStream & FilterOutputStream BufferedInputStream: BufferedOutputStream DataInputStream Μετατρέπει τα δεδομένα στον γηγενή τύπο τους καθώς τα λαμβάνει DataOutputStream Γράφει πρωτογενείς τύπους δεδομένων σε ένα output stream 11

12 Συνήθη βήματα ενός ΤCP client 12

13 Συνήθη βήματα ενός ΤCP server 13

14 Περίγραμμα εφαρμογής client-side server-side 14

15 Μετάδοση αντικειμένων (Serialization) Για την αποστολή/λήψη δεδομένων βασικών τύπων (integer, long, char, boolean, byte, float, double) μπορούν να χρησιμοποιηθούν οι αντίστοιχες μέθοδοι των κλάσεων DataInputStream/DataOutputStream(π.χ. writeint()/readint()) Για strings μπορούν να χρησιμοποιηθούν οι μέθοδοι writeutf()/readutf(). Για αντικείμενα κλάσεων, οι κλάσεις θα πρέπει να υλοποιούν το Serializable interfaceκαι θα πρέπει να χρησιμοποιηθούν μέθοδοι των κλάσεων ObjectInputStream/ObjectOutputStream writeobject() readobject() 15

16 Σχεδιασμός client/server εφαρμογών με Sockets Θα πρέπει να αποφασίσουμε την γλώσσα προγραμματισμού και το ΛΣ που θα χρησιμοποιήσουμε (πλατφόρμα ανάπτυξης) C, Java κ.ο.κ. UNIX, Linux, MS κ.ο.κ. Θα πρέπει να αποφασίσουμε εάν: θα υλοποιήσουμε την εφαρμογή πάνω από TCPή UDP Θα πρέπει να σχεδιάσουμε το πρωτόκολλο επικοινωνίας (request/reply protocol) Ορισμός της δομής των μηνυμάτων που ανταλλάσσονται To πρωτόκολλο μπορεί να είναι statefull ή stateless Θα πρέπει να υλοποιήσουμε την επιχειρησιακή λογική της εφαρμογής, την διεπαφή χρήστη,καθώς και την επικοινωνιακή σύνδεση χρησιμοποιώντας το API που μας παρέχει η πλατφόρμα ανάπτυξης που έχουμε επιλέξει Η ανταλλαγή μηνυμάτων θα πρέπει να λάβει υπόψη πιθανή ετερογένεια μεταξύ των συστημάτων που επικοινωνούν (π.χ., διαφορετική αναπαράσταση των βασικών τύπων δεδομένων) 16

17 THREADS 17

18 Διεργασίες Μια διεργασία(process) είναι ένα αυτοδύναμο περιβάλλον εκτέλεσης προγράμματος. Διαθέτει τους δικούς της αποκλειστικούς πόρους κατά το χρόνο εκτέλεσής της (με πιο σημαντικό αυτό της μνήμης). Μια εφαρμογή είναι δυνατό να αποτελείται από πολλές συνεργαζόμενες διεργασίες.

19 Νήματα Ένα νήμα(thread) είναι μια ακολουθιακή ροή ελέγχου (δηλαδή, κώδικας που έχει αρχή, περιέχει μια ακολουθία εντολών και έχει τέλος) σε ένα πρόγραμμα. Σκοπός είναι η απομόνωση (ή αυτονόμηση) κάποιων εργασιών (tasks), ώστε να μπορούν να εκτελούνται ταυτόχρονα(δυνητικά παράλληλα). Ένα νήμα δεν είναι από μόνο του ένα πρόγραμμα, αλλά ούτε διεργασία. Ένα νήμα εκτελείται στο εσωτερικό ενός προγράμματος. Ένα μόνο νήμα δεν προσφέρει ευκαιρίες πολυεπεξεργασίας. Δύο ή περισσότερα νήματα μπορούν να εκτελούνται ταυτόχρονα πραγματοποιώντας διαφορετικές εργασίες. 19

20 Πολυνηματικές εφαρμογές

21 Διεργασίες έναντι Νημάτων Οι διεργασίες : είναι ανεξάρτητες κουβαλούν σημαντική πληροφορία κατάστασης (process control block) διαθέτουν ξεχωριστό χώρο διευθύνσεων (address space) και αλληλεπιδρούν μόνον μέσω μηχανισμών διαδιεργασιακής επικοινωνίας που παρέχονται από το ΛΣ Τα νήματα: Μοιράζονται πληροφορίες κατάστασης μιας διεργασίας Μοιράζονται μνήμη και άλλους πόρους απ ευθείας Το context-switching μεταξύ νημάτων της ίδιας διεργασίας είναι τυπικά ταχύτερο από το context-switching μεταξύ διεργασιών τα νήματα είναι πιο αποδοτικά

22 Δημιουργία νημάτων στην Java Δύο τρόποι δημιουργίας νημάτων: Ως στιγμιότυπα υποκλάσεων της κλάσης java.lang.thread: + Πιο απλή προσέγγιση, κατάλληλη για απλές εφαρμογές. Τα νήματα περιορίζονται στο να είναι υποκλάσεις της συγκεκριμένης κλάσης. Ως στιγμιότυπα υλοποιήσεων της διεπαφής java.lang.runnable: +Η κλάση που υλοποιεί τη διεπαφή μπορεί να είναι υποκλάση οποιασδήποτε άλλης κλάσης. Και στις δύο περιπτώσεις πρέπει να οριστεί το σώμα της μεθόδου run, που είναι κενό και προσδιορίζει τι κάνει το νήμα. Η μέθοδος runείναι αφαίρεση μεθόδου της Runnable, αλλά και της Thread(καθώς η Thread υλοποιεί την Runnable). 22

23 Επεκτείνοντας την κλάσηthread Δημιουργία υποκλάσης της Thread public class ExampleThread extends Thread { } public void run() { } // perform whatever thread needs to do Για να ξεκινήσει ένα νέο thread ExampleThread et = new ExampleThread(); et.start(); Η start() ορίζεται στην Thread κλάση

24 Υλοποιώντας την διεπαφή Runnable Δημιουργία μιας κλάσης που υλοποιεί το Runnable interface public class ExampleRunnable implements Runnable { } public void run() { // perform whatever thread needs to do } Για να ξεκινήσει ένα νέο thread ExampleRunnable er = new ExampleRunnable(); new Thread(er).start();

25 Καταστάσεις νημάτων start() Ready to Run leaving non-runnable scheduling timeslice ends Running terminates Dead entering non-runnable Non-runnable states Waiting Sleeping Blocked

26 Μεταβάσεις από κλήση μεθόδων 26

27 Συγχρονισμός νημάτων Τα νήματα μοιράζονται τον ίδιο χώρο μνήμης κάθε νήμα διαθέτει το δικό του stack space, αλλά μοιράζονται το ίδιο heap (για διαχείριση δυναμικής μνήμης) Ο συγχρονισμός είναι απαραίτητος για : ακεραιότητα δεδομένων προσπέλαση κοινών πόρων 27

28 Monitor: μηχανισμός συγχρονισμού Μια περιοχή του κώδικα που αναπαριστά έναν κοινό πόρο (κρίσιμη περιοχή) μπορεί να συσχετισθεί με έναmonitor(αλλιώς semaphore). Τα νήματα κάνουν προσπέλαση του κοινού πόρου κλειδώνοντας πρώτα το monitor Μόνον ένανήμα μπορεί να κατέχει το monitor σε μια δεδομένη χρονική στιγμή Τα monitors υλοποιούν έναν μηχανισμό αμοιβαίου αποκλεισμού (αλλιώς mutex)

29 Συνθήκες ανταγωνισμού (race conditions) Συνθήκη ανταγωνισμού(race condition)έχουμε όταν δύο νήματα προσπαθούν να προσπελάσουν το ίδιο αντικείμενο ταυτόχρονα και η συμπεριφορά του προγράμματος δεν εξαρτάται πλέον μόνο από τις εντολές του, αλλά και από το ποιο νήμα προηγείται στη σειρά προσπέλασης (δεν είναι προβλέψιμο αφού αυτό εξαρτάται από το λειτουργικό σύστημα). Αν όλα τα νήματα εκτελούν αποκλειστικά λειτουργίες ανάγνωσης, τότε δεν υπάρχει κίνδυνος συνθήκης ανταγωνισμού. Στην περίπτωση συνθήκης ανταγωνισμού τα αποτελέσματα των υπολογισμών δεν είναι συνεπή σε διαδοχικές επαναλήψεις εκτέλεσης του προγράμματος με την ίδια είσοδο.

30 Συνθήκες ανταγωνισμού (race conditions) Πρέπει να εξασφαλιστεί ότι το ένα νήμα δεν θα αλλάξει τα δεδομένα αυτά, ενώ τα διαχειρίζεται κάποιο άλλο νήμα αναγκαίος ο συγχρονισμός νημάτων. Για το λόγο αυτό, η Java επιτρέπει το κλείδωμα αντικειμένων και μεθόδων με τη χρήση της δεσμευμένης λέξης synchronized.

31 Συγχρονισμός νημάτων Συγχρονισμός νημάτων επιτρέποντας την προσπέλαση μιας μεθόδου (ή ενός αντικειμένου) σε ένα μόνο νήμα κάθε φορά: 31 public synchronized void xmethod { } Για να προσπελάσει ένα νήμα τη μέθοδο xmethodπρέπει να περιμένει να τελειώσει το τρέχον νήμα (blocked). Μπορεί να δηλωθεί ως συγχρονισμένο ένα τμήμα κώδικα στο σώμα μιας μεθόδου (και όχι όλη η μέθοδος): public int ymethod { }... synchronized (this) {... }

32 ΑΣΚΗΣΕΙΣ 32

33 Άσκηση : Echo serviceμε Java Sockets Θέλουμε να αναπτύξουμε μια κατανεμημένη εφαρμογή τύπου client/server που υλοποιεί μια echo υπηρεσία πάνω από Java TCP streams. Χρειαζόμαστε δύο προγράμματα: TCPClientκαι TCPServer. Mπορείτε με την javac εντολή σε ένα command line παράθυρο να μεταγλωττίσετε τον κώδικα του client (TCPClient.java) και τον κώδικα του server (TCPServer.java). Στην συνέχεια σε δύο ξεχωριστά παράθυρα τρέξτε πρώτα τον server και έπειτα τον client.ενδεικτικά οι εντολές που θα πρέπει να δώσετε είναι: java TCPServer java TCPClient Hello MPES Dept localhost Στη συνέχεια τροποποιείστε τον κώδικα του server ώστε να τυπώνει την IP διεύθυνση και το port number του Η/Υ από τον οποίο έλαβε το αίτημα. 33

34 TCPClient TCP client makes connection to server, sends request and receives reply import java.net.*; import java.io.*; public class TCPClient { public static void main (String args[]) { // arguments supply message and hostname of destination Socket s = null; try{ int serverport = 7896; s = new Socket(args[1], serverport); DataInputStream in = new DataInputStream( s.getinputstream()); DataOutputStream out = new DataOutputStream( s.getoutputstream()); out.writeutf(args[0]); // UTF is a string encoding String data = in.readutf(); System.out.println("Received: "+ data) ; }catch (UnknownHostException e){ System.out.println("Sock:"+e.getMessage()); }catch (EOFException e){system.out.println("eof:"+e.getmessage()); }catch (IOException e){system.out.println("io:"+e.getmessage());} }finally {if(s!=null) try {s.close();}catch (IOException e) {System.out.println("close:"+e.getMessage());}} } }

35 TCPServer TCP server makes a connection for each client and then echoes the client s request import java.net.*; import java.io.*; public class TCPServer { public static void main (String args[]) { try{ int serverport = 7896; ServerSocket listensocket = new ServerSocket(serverPort); while(true) { Socket clientsocket = listensocket.accept(); Connection c = new Connection(clientSocket); } } catch(ioexception e) {System.out.println("Listen :"+e.getmessage());} } } // this code continues on the next slide

36 TCPServer(συνέχεια) class Connection extends Thread { DataInputStream in; DataOutputStream out; Socket clientsocket; public Connection (Socket aclientsocket) { try { clientsocket = aclientsocket; in = new DataInputStream( clientsocket.getinputstream()); out =new DataOutputStream( clientsocket.getoutputstream()); this.start(); } catch(ioexception e) {System.out.println("Connection:"+e.getMessage());} } } public void run(){ try { } // an echo server String data = in.readutf(); out.writeutf(data); } catch(eofexception e) {System.out.println("EOF:"+e.getMessage()); } catch(ioexception e) {System.out.println("IO:"+e.getMessage());} } finally{ try {clientsocket.close();}catch (IOException e){/*close failed*/}}

37 Επέκταση της κλάσης TCPServer public class TCPServer { public static void main (String args[]) { try{ int serverport = 7896; // the server port ServerSocket listensocket = new ServerSocket(serverPort); while(true) { Socket clientsocket = listensocket.accept(); } } } Connection c = new Connection(clientSocket); } catch(ioexception e) {System.out.println("Listen socket:"+e.getmessage());} 37

38 Επέκταση της κλάσης TCPServer public class TCPServer { } public static void main (String args[]) { } try{ int serverport = 7896; // the server port ServerSocket listensocket = new ServerSocket(serverPort); while(true) { Socket clientsocket = listensocket.accept(); System.out.println("Connection request form client: " + clientsocket.getinetaddress() + " : " + clientsocket.getport()); } Connection c = new Connection(clientSocket); } catch(ioexception e) {System.out.println("Listen socket:"+e.getmessage());} 38

39 Άσκηση σε συγχρονισμό Για το σενάριο που θα περιγράψουμε θα θεωρήσουμε ότι ο ίδιος τραπεζικός λογαριασμός μπορεί να προσπελασθεί από πολλούς πελάτες (κοινός λογαριασμός). Για κάθε αίτημα που φθάνει στον εξυπηρετητή δημιουργείται ένα διαφορετικό νήμα που τρέχει τον κώδικα εξυπηρέτησης. Ας υποθέσουμε ότι για την διαχείριση της ανάληψης ενός ποσού (amount) από έναν λογαριασμό (που αναγνωρίζεται με το PIN mypin) χρησιμοποιείται ο παρακάτω κώδικας που τρέχει εντός του κάθε νήματος (thread)που εξυπηρετεί έναν πελάτη. Υποθέτουμε μονοεπεξεργαστικό σύστημα στην πλευρά του εξυπηρετητή. 1. case CMD_WITHDRAW: 2. Account sessionacc = getsessionaccount(mypin); // τοπικό αντίγραφο Account 3. String result = sessionacc.withdraw(amount); // ανάληψη του ποσού 4. savesessionaccount(sessionacc); // αποθήκευση τοπικού αντιγράφου 5. break; 39

40 Άσκηση σε συγχρονισμό Toσενάριο έχει ως εξής: δυο πελάτες (Π1 και Π2) διαθέτουν έναν κοινό λογαριασμό (Λ) και αφού έχουν ελέγξει το υπόλοιπο του λογαριασμού, το οποίο είναι 5000, στην συνέχεια προσπαθούν ταυτόχρονα να κάνουν ανάληψη ποσού 3000 ο πρώτος και 4000 ο δεύτερος. Περιγράψτε ένα σενάριο που οδηγεί σε συνθήκες ανταγωνισμού. Συνθήκη ανταγωνισμού (race condition) έχουμε όταν δύο νήματα προσπαθούν να προσπελάσουν το ίδιο αντικείμενο ταυτόχρονα και η συμπεριφορά του προγράμματος δεν εξαρτάται πλέον μόνο από τις εντολές του, αλλά και από το ποιο νήμα προηγείται στη σειρά προσπέλασης. Toπεδίο εφαρμογής της άσκησης ευνοεί την εμφάνιση καταστάσεων ανταγωνισμού και δημιουργεί αντίστοιχες απαιτήσεις για την αντιμετώπισή τους. 40

41 Knock Kncok Who s there? Θέλουμε να υλοποιήσουμε το παιδικό παιχνίδι αστείου λόγου Knock Kncok Who s there ως μια κατανεμημένη εφαρμογή τύπου πελάτης-εξυπηρετητής με Java sockets. To παιχνίδι περιλαμβάνει τον αστειολόγο (ο εξυπηρετητής) και τον παραλήπτη του λογοπαιγνίου (πελάτης). Η αλληλεπίδρασή τους περιλαμβάνει τα ακόλουθα βήματα: Αστειολόγος : λέει Knock, knock! Παραλήπτης: πρέπει να πει Who's there? Αστειολόγος : λέει ένα όνομα (π.χ. Atch) Παραλήπτης: πρέπει να επαναλάβει το όνομα με το ερώτημα ποιος; (π.χ. Atch who?) Αστειολόγος: λέει το λογοπαίγνιο (π.χ. Bless you!) 41

42 Προδιαγραφές KKClient Για την εφαρμογή μας η τελευταία απάντηση (λογοπαίγνιο) του εξυπηρετητή συνοδεύεται από το ερώτημα προς τον παραλήπτη αν θέλει να συνεχίσει το παιχνίδι. Αν η απάντηση είναι «ναι» συνεχίζει ένας νέος κύκλος, ενώ αν η απάντηση είναι «όχι», ο εξυπηρετητής στέλνει μήνυμα Bye. και το πρόγραμμα του πελάτη τερματίζει. Ο εξυπηρετητής εξακολουθεί να εκτελείται. Το πρόγραμμα του πελάτη υλοποιείται από μια κλάση, έστω ΚΚClient. Η κλάση ΚΚClient πραγματοποιεί την σύνδεση με τον εξυπηρετητή (για την σύνδεση χρησιμοποιείστε το ζευγάρι {localhost, 5050})και υλοποιεί τον ψευδοκώδικα που σας δίνεται παρακάτω. 42

43 Προδιαγραφές KKClient 43

44 Προδιαγραφές KKServer 44

45 Προδιαγραφές KKProtocol 45

46 Concurrent Server 46

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης

14. Δικτύωση με Java Δικτύωση με Java Sockets Δημιουργία της σύνδεσης Διευθυνσιοδότηση της σύνδεσης 14. Δικτύωση με Java Τελειώνοντας αυτό το κεφάλαιο θα μπορείτε: Να δημιουργείτε έναν ελάχιστο εξυπηρέτη TCP/IP σε Java Να δημιουργείτε έναν ελάχιστο εξυπηρετούμενο TCP/IP σε Java Να κατανοείτε πώς υλοποιούνται

Διαβάστε περισσότερα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 23: Εισαγωγή στην Δικτύωση (Networking) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διευθύνσεις και Θύρες - Sockets και ServerSockets Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ233 Αντικειμενοστρεφής

Διαβάστε περισσότερα

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 11: Sockets Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Interprocess Communication

Interprocess Communication ιαδιεργασική Επικοινωνία Interprocess Communication Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 3: JAVA: ΕΞΑΙΡΕΣΕΙΣ, ΕΙΣΟΔΟΣ-ΕΞΟΔΟΣ, ΝΗΜΑΤΑ Νήματα ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΝΗΜΑΤΑ

Διαβάστε περισσότερα

{ πρωτόκολλο, τοπική-διεύθυνση, τοπική-διεργασία, απομακρυσμένη-διεύθυνση, απομακρυσμένη-διεργασία }

{ πρωτόκολλο, τοπική-διεύθυνση, τοπική-διεργασία, απομακρυσμένη-διεύθυνση, απομακρυσμένη-διεργασία } 11.2 Sockets 11.2.1 Το μοντέλο Client - Server και μερικοί ορισμοί Το ευρύτερα διαδεδομένο μοντέλο ανάπτυξης δικτυακών εφαρμογών είναι το μοντέλο του πελάτη - εξυπηρετητή ( client - server ). Ο εξυπηρετητής

Διαβάστε περισσότερα

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα Η Υλοποίηση της Επικοινωνίας στα Κατανεµηµένα Συστήµατα ιαφάνειες στα πλαίσια του µαθήµατος: Κατανεµηµένα Συστήµατα Ε Εξάµηνο, Τµήµα Πληροφορικής και Τεχνολογίας Υπολογιστών, ΤΕΙ Λαµίας Πέτρος Λάµψας 2002

Διαβάστε περισσότερα

ιαδικτυακές Εφαρµογές

ιαδικτυακές Εφαρµογές ιαδικτυακές Εφαρµογές µε Java2 Στοιχεία ικτυακής Επικοινωνίας Όροι IP address 32bit αριθµός που χρησιµοποιείται από το Internet Protocol για την παράδοση δεδοµένων στο σωστό υπολογιστή στο δίκτυο. Port

Διαβάστε περισσότερα

ικτύωσησε Java Κατανεµηµένα Συστήµατα 08-1

ικτύωσησε Java Κατανεµηµένα Συστήµατα 08-1 ικτύωσησε Java ιευθύνσεις IP Υποδοχές ρεύµατος Σειριακοποίηση αντικειµένων Υποδοχές δεδοµενογραφηµάτων Υποδοχές πολυεκποµπής Οµοιόµορφοι Εντοπιστές Πόρων Κατανεµηµένα Συστήµατα 08-1 Υποδοχές σε C ικτύωσησε

Διαβάστε περισσότερα

Αρχεία και Ρεύματα. Αρχεία

Αρχεία και Ρεύματα. Αρχεία Αρχεία Αρχεία και Ρεύματα sequential files(σειριακά αρχεία) direct access(απ'ευθείας πρόσβασης) Ρεύματα (I/O Streams) Ένα ρεύμα είναι μια σειριακή ροή δεδομένων από μία πηγή προς έναν προορισμό. Όταν ένα

Διαβάστε περισσότερα

HY335 4ο Φροντιστήριο

HY335 4ο Φροντιστήριο HY335 4ο Φροντιστήριο Δημιουργία ενός τοπικού δικτύου και επίδειξη προγραμμάτων τύπου client / server για TCP και UDP Fontas Fafoutis Ilias Tsompanidis Δημιουργία

Διαβάστε περισσότερα

Εργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net

Εργαστήριο Java. Αντικείµενο: Δίκτυα. Χειρισµός URLs. Άσκηση 1. Lab11. Πακέτο java.net Εργαστήριο Java Lab11 Αντικείµενο: Δίκτυα Πακέτο java.net H Java παρέχει ένα σύνολο από ενσωµατωµένες δυνατότητες για δηµιουργία εφαρµογών στο Internet ή σε τοπικά δίκτυα. H Java παρέχει τα stream sockets

Διαβάστε περισσότερα

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ Στην java οι πληροφορίες αποθηκεύονται και ανακαλούνται/ανασύρονται µε τη χρήση ενός συστήµατος επικοινωνίας που χρησιµοποιεί την έννοια του stream (κανάλι επικοινωνίας). Σαν stream

Διαβάστε περισσότερα

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA 1. Εισαγωγή Τι είναι Νήµα; Κάθε νήµα εκτέλεσης είναι ουσιαστικά

Διαβάστε περισσότερα

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7

Java Μέρος Ι Αντικειμενοστρεφής Προγραμματισμός - 7 Περιεχόμενα 1 Εισαγωγικές Έννοιες...12 1.1 Το Αντικείμενο στην καθημερινότητα...12 1.2 Το Αντικείμενο στον Προγραμματισμό...12 1.3 Επικοινωνία αντικειμένων...13 1.4 Κλάση (class) αντικειμένων...14 1.4.1

Διαβάστε περισσότερα

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο Μεταφοράς (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο Μεταφοράς(Transport layer) Επίπεδο εφαρμογής (Application layer): Συντονισμός

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα. Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα. Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Κατανεμημένα Συστήματα Ενότητα # 4: Μηχανισμοί Επικοινωνίας Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου

Διαβάστε περισσότερα

Το παρακάτω πρόγραμμα ορίζει δυο κλάσεις την SimpleThread και την TwoThreadsTest:

Το παρακάτω πρόγραμμα ορίζει δυο κλάσεις την SimpleThread και την TwoThreadsTest: Εισαγωγή στη γλώσσα προγραμματισμού Java 41 6. Threads Πολλές γλώσσες προγαμματισμού όπως και η Java διαθέτουν εργαλεία για την υλοποίηση threads στα προγράμματά τους. Αυτές οι γλώσσες καλούνται multithreading

Διαβάστε περισσότερα

Φροντιστήριο Α' Κατανεμημένα Συστήματα Επιμέλεια: Μπούτσης Ιωάννης

Φροντιστήριο Α' Κατανεμημένα Συστήματα Επιμέλεια: Μπούτσης Ιωάννης Φροντιστήριο Α' Κατανεμημένα Συστήματα 2011-2012 Επιμέλεια: Μπούτσης Ιωάννης mpoutsis@aueb.gr Outline Επικοινωνία μέσω Java Sockets(υποδοχές) Παραλληλοποιημένος κώδικας: Threads(νήματα) Παραδείγματα Εισαγωγή

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης Δίκτυα Υπολογιστών Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης Περίγραμμα ενότητες που εξετάζονται Αρχές δικτυακών εφαρμογών Αρχιτεκτονικές Μοντέλα υπηρεσιών επιπέδου μεταφοράς Μοντέλο πελάτη

Διαβάστε περισσότερα

(C) 2010 Pearson Education, Inc. All rights reserved.

(C) 2010 Pearson Education, Inc. All rights reserved. Connectionless transmission with datagrams. Connection-oriented transmission is like the telephone system You dial and are given a connection to the telephone of fthe person with whom you wish to communicate.

Διαβάστε περισσότερα

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ Στην java οι πληροφορίες αποθηκεύονται και ανακαλούνται/ανασύρονται µε τη χρήση ενός συστήµατος επικοινωνίας που χρησιµοποιεί την έννοια του stream (κανάλι επικοινωνίας). Σαν stream

Διαβάστε περισσότερα

Διαδικτυακές Εφαρμογές Ενότητα 4: Streams

Διαδικτυακές Εφαρμογές Ενότητα 4: Streams Διαδικτυακές Εφαρμογές Ενότητα 4: Streams Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας Δίκτυα Υπολογιστών Firewalls Χάρης Μανιφάβας 1 Επικοινωνία Βασίζεται στη μεταβίβαση μηνυμάτων (λόγω απουσίας διαμοιραζόμενης μνήμης) Απαιτείται συμφωνία φόρμας μηνυμάτων Πρότυπο Στόχος τυποποίησης = Συνεργασία

Διαβάστε περισσότερα

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Java Παύλος Εφραιμίδης Java Βασικά Στοιχεία της γλώσσας Java 1 Τύποι Δεδομένων Η Java έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) τύπους δεδομένων αναφορές Java Βασικά

Διαβάστε περισσότερα

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 6: Threads Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Εισαγωγή στον Κατανεμημένο Προγραμματισμό

Εισαγωγή στον Κατανεμημένο Προγραμματισμό Εισαγωγή στον Κατανεμημένο Προγραμματισμό Περιεχόμενα Βασικές γνώσεις υποδοχών δικτύων Ιστορία του κατανεμημένου προγραμματισμού Εξέλιξη των πλαισίων ανάπτυξης επιχειρηματικών εφαρμογών Βασικές γνώσεις

Διαβάστε περισσότερα

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων Εργαστήριο Java Lab09 Αντικείμενο: Πολυνηματικές εφαρμογές Η χρήση περισσότερων από μιας ροής εντολών μέσα σε ένα πρόγραμμα είναι γνωστή ως multithreading. H κάθε μια ροή εντολών μέσα στο πρόγραμμα ονομάζεται

Διαβάστε περισσότερα

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( ) Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική

Διαβάστε περισσότερα

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2012-2013 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη Project 2012-2013 Υλοποίηση ενός chat server-client Παράδοση: 7/2/2013

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #11 η : Διαδικτυακές Εφαρμογές με τη Java

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #11 η : Διαδικτυακές Εφαρμογές με τη Java Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #11 η : Διαδικτυακές Εφαρμογές με τη Java Γαβαλάς Δαμιανός dgavalas@aegean.gr Όροι IP διεύθυνση (IP address) Ένας 32 bit αριθμός που χρησιμοποιείται

Διαβάστε περισσότερα

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java Java Media Framework Ηβιβλιοθήκη JMF Εγκαθίσταται επιπρόσθετα στη Java Αναπαραγωγή πολυµέσων Αποστολή και λήψη πολυµέσων σε πραγµατικό χρόνο Γραφικά αντικείµενα

Διαβάστε περισσότερα

Βασικά Στοιχεία της Java

Βασικά Στοιχεία της Java Βασικά Στοιχεία της Παύλος Εφραιμίδης 1 Βασικά Στοιχεία της γλώσσας Τύποι Δεδομένων Η έχει δύο κατηγορίες τύπων δεδομένων: πρωτογενείς (primitive) iti τύπους δεδομένων δδ αναφορές 2 Βασικά Στοιχεία της

Διαβάστε περισσότερα

Φροντιστήριο Α' Κατανεμημένα Συστήματα Επιμέλεια: Μπούτσης Ιωάννης

Φροντιστήριο Α' Κατανεμημένα Συστήματα Επιμέλεια: Μπούτσης Ιωάννης Φροντιστήριο Α' Κατανεμημένα Συστήματα 2013-2014 Επιμέλεια: Μπούτσης Ιωάννης mpoutsis@aueb.gr Outline Επικοινωνία μέσω Java Sockets(υποδοχές) Παραλληλοποιημένος κώδικας: Threads(νήματα) Παραδείγματα Εισαγωγή

Διαβάστε περισσότερα

Γενικά (για τις γραπτές εξετάσεις)

Γενικά (για τις γραπτές εξετάσεις) Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #12 η : Επανάληψη Γαβαλάς Δαμιανός dgavalas@aegean.gr Γενικά (για τις γραπτές εξετάσεις) Δεν υπάρχει αυστηρά ορισμένη «ύλη εξετάσεων» (καθώς δεν έχετε

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης) TEI Σερρών Τμήμα Πληροφορικής και Επικοινωνιών Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης) Ανάλυση Πρωτοκόλλων Τομέας Τηλεπικοινωνιών και Δικτύων Δρ. Αναστάσιος Πολίτης Καθηγητής Εφαρμογών anpol@teiser.gr

Διαβάστε περισσότερα

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP Κεφάλαιο 7 Διαδικτύωση-Internet 7.2 Τεχνολογία TCP/IP Τι δηλώνει ο όρος «TCP/IP»; Ο όρος TCP/IP αναφέρεται σε μια ομάδα ομοειδών πρωτοκόλλων που χρησιμοποιούνται για την επικοινωνία των δικτύων υπολογιστών

Διαβάστε περισσότερα

Επικοινωνία Client/Server

Επικοινωνία Client/Server Επικοινωνία Client/Server Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία - Client/Server 1 Μοντέλο Πελάτη-Εξυπηρετητή Βασική ιδέα: να δομηθεί το λειτουργικό σύστημα ως συνεργαζόμενες

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος 2010/2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου A. Πρωταρχικοί τύποι B. Είσοδος/ Έξοδος C. Πράξεις 2 Δήλωση / Αρχικοποίηση / Εκχώρηση A. Πρωταρχικοί

Διαβάστε περισσότερα

Πολυνηµατικές εφαρµογές σε Java

Πολυνηµατικές εφαρµογές σε Java Πολυνηµατικές εφαρµογές σε Java Σταύρος Πολυβίου Τί είναι ένα νήµα (thread); Ας ορίσουµε πρώτα το τί είναι µία διεργασία (process): Ένα αυτοδύναµο περιβάλλον εκτέλεσης (selfcontained execution environment).

Διαβάστε περισσότερα

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός Εισαγωγή Επανάληψη ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. ΤΕΙ Στερεάς Ελλάδας Δήλωση Οι διαφάνειες βασίζονται στα βιβλία: (1) Computer Networking: A Top Down Approach

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 11 : ΑΡΧΕΙΑ ΚΑΙ ΧΕΙΡΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 11 : ΑΡΧΕΙΑ ΚΑΙ ΧΕΙΡΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 11 : ΑΡΧΕΙΑ ΚΑΙ ΧΕΙΡΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ Κατηγορίες Διαχείριση αρχείων Η κλάση File για τη διαχείριση αρχείων Δυαδικά ρεύματα Εγγραφή και ανάγνωση δυαδικών αρχείων

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 12 Ροές και είσοδος/έξοδος αρχείων Τα δεδομένα εισόδου

Διαβάστε περισσότερα

Ειδικά Θέματα Προγραμματισμού

Ειδικά Θέματα Προγραμματισμού Ειδικά Θέματα Προγραμματισμού Ενότητα 3: Τύποι Δεδομένων - Τελεστές Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

B. Ενσωμάτωση Ιθαγενών Μεθόδων

B. Ενσωμάτωση Ιθαγενών Μεθόδων B. Ενσωμάτωση Ιθαγενών Μεθόδων Στο τέλος αυτού του κεφαλαίου θα μπορείτε: Να δημιουργείτε κώδικα Java που θα φορτώνει βιβλιοθήκες και θα καλεί ιθαγενείς μεθόδους (native methods). Να χρησιμοποιείτε τη

Διαβάστε περισσότερα

6. Εξαιρέσεις στη γλώσσα Java

6. Εξαιρέσεις στη γλώσσα Java 6. Εξαιρέσεις στη γλώσσα Java Με το τέλος αυτού του κεφαλαίου θα μπορείτε: Να ορίζετε εξαιρέσεις Να εξηγείτε γιατί είναι σημαντικός ο χειρισμός των εξαιρέσεων Να γράφετε κώδικα για να συλλαμβάνετε εξαιρέσεις

Διαβάστε περισσότερα

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία -RPC 1 Υλοποίηση RPC Προκειμένου να επιτευχθεί διαφάνεια στην κλήση RPC,

Διαβάστε περισσότερα

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi ee.duth.

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth. Το πρόγραμμα HelloWorld.java Σχόλια στη Java HelloWorld Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Το πρόγραμμα HelloWorld 1 Java Το πρόγραμμα HelloWorld 2 Σχόλια στη Java ΗγλώσσαJava υποστηρίζει

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 13: Ταυτόχρονος Προγραμματισμός Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

Διαβάστε περισσότερα

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 12: Είσοδος από & Έξοδος σε Ρεύματα & Αρχεία Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης

Διαβάστε περισσότερα

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Ηυιοθέτησητης τεχνολογίαςκαι αρχιτεκτονικής TCP/IP δεν έρχεται σε σύγκρουσηµε το µοντέλο του OSI και αυτό γιατί και τα δυο συστήµατααναπτύχθηκαν συγχρόνως. Παρόλα αυτά, υπάρχουν ορισµένες ουσιώδεις διαφορές

Διαβάστε περισσότερα

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2

Διαβάστε περισσότερα

Επίπεδο δικτύου IP Forwading κτλ

Επίπεδο δικτύου IP Forwading κτλ Επίπεδο δικτύου IP Forwading κτλ (IP για που το έβαλες) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο δικτύου (Network layer) Επίπεδο εφαρμογής (Application layer):

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

Διαβάστε περισσότερα

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 3: JAVA: ΕΞΑΙΡΕΣΕΙΣ, ΕΙΣΟΔΟΣ-ΕΞΟΔΟΣ, ΝΗΜΑΤΑ Είσοδος - Έξοδος ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Σύγκριση JAVA-C ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΣΥΓΚΡΙΣΗ JAVA - C ΤΥΠΟΙ

Διαβάστε περισσότερα

7.2.2 Σχέση OSI και TCP/IP

7.2.2 Σχέση OSI και TCP/IP Κεφάλαιο 7 7.2.2 Σχέση OSI και TCP/IP Σελ. 226-230 Γεώργιος Γιαννόπουλος ΠΕ19, ggiannop (at) sch.gr ΕΣΠΕΡΙΝΟ ΕΠΑΛ Κομοτηνής http://diktya-epal-g.ggia.info/ Γνωστό μοντέλο OSI διασύνδεσης ανοικτών συστημάτων.

Διαβάστε περισσότερα

ΜΑΘΗΜΑ: Διαδικτυακές Εφαρμογές

ΜΑΘΗΜΑ: Διαδικτυακές Εφαρμογές ΜΑΘΗΜΑ: Διαδικτυακές Εφαρμογές ΔΙΔΑΣΚΩΝ: Άγγελος Μιχάλας ΤΜΗΜΑ: Τμήμα Μηχανικών Πληροφορικής ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης CreativeCommons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις 2 Ανατομία ενός προγράμματος

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΑΝΑΦΟΡΕΣ new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 5: H ΓΛΩΣΣΑ C++ Διαφορές Java και C++ ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΔΙΑΦΟΡΕΣ JAVA C++ Η

Διαβάστε περισσότερα

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1 Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2

Διαβάστε περισσότερα

Δίκτυα Η/Υ στην Επιχείρηση

Δίκτυα Η/Υ στην Επιχείρηση Δίκτυα Η/Υ στην Επιχείρηση Δικτυακά πρωτόκολλα και εφαρμογές, Δρομολόγηση Γκάμας Βασίλειος, Εργαστηριακός Συνεργάτης Μοντέλο πελάτη-εξυπηρετητή Προκειμένου να χρησιμοποιήσουμε μια υπηρεσία του Internet

Διαβάστε περισσότερα

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Version 2.00 Επιμέλεια Σημειώσεων: Δημήτρης Κόγιας Πατρικάκης Χαράλαμπος Πίνακας περιεχομένων TELNET... 2 PING...

Διαβάστε περισσότερα

Οντοκεντρικός Προγραμματισμός

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Βιβλιοθήκες ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΒΙΒΛΙΟΘΗΚΗ JAVA ΒΑΣΙΚΗ ΒΙΒΛΙΟΘΗΚΗ

Διαβάστε περισσότερα

ΥΛΟΠΟΙΗΣΗ ΠΡΟΤΥΠΩΝ ΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΤΗ ΒΙΒΛΙΟΘΗΚΗ JAVA.NET ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΥ ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ ΤΕΕ

ΥΛΟΠΟΙΗΣΗ ΠΡΟΤΥΠΩΝ ΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΤΗ ΒΙΒΛΙΟΘΗΚΗ JAVA.NET ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΥ ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ ΤΕΕ 3 Ο ΣΥΝΕΔΡΙΟ ΣΤΗ ΣΥΡΟ-ΤΠΕ ΣΤΗΝ ΕΚΠΑΙΔΕΥΣΗ 145 ΥΛΟΠΟΙΗΣΗ ΠΡΟΤΥΠΩΝ ΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΤΗ ΒΙΒΛΙΟΘΗΚΗ JAVA.NET ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΥ ΚΥΚΛΟΥ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΟΥ ΤΕΕ Βραχνός Ευριπίδης Καθηγητής

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 8: Ταυτοχρονισμός και νήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 8: Ταυτοχρονισμός και νήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός Ενότητα # 8: Ταυτοχρονισμός και νήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα

Διαβάστε περισσότερα

Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές

Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές Προγραμματισμός ΙΙ (Java) 10. Πολυνηματικές εφαρμογές Multithreading Μulti-processing Πολλές διεργασίες ταυτόχρονα Κάθε διεργασία έχει το δικό της χώρο μνήμης ή ενδέχεται όλες να μοιράζονται και κάποιο

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας ίκτυα Η/Υ Μοντέλο TCP/IP Ενότητα E ρ. Ε. Μάγκος Συστήµατα Επικοινωνίας (Ε) (PC) (N) Επικοινωνίες: Εφαρµογές Υπολογιστές ίκτυα πολλές πολλοί N A N

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

Διαβάστε περισσότερα

Παράλληλη Επεξεργασία

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II Strings Η κλάση String είναι προκαθορισμένη κλάση της Java που μας επιτρέπει να χειριζόμαστε αλφαριθμητικά. Ο τελεστής + μας επιτρέπει

Διαβάστε περισσότερα

Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου

Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου Μ.Στεφανιδάκης Κατανεμημένα συστήματα ελέγχου Α Β διασυνδετικό δίκτυο Γ Δ Ε π.χ. οι επιμέρους

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. ίκτυα Υπολογιστών Ι. To Μοντέλο OSI. Αναπλ. Καθηγ. Π. εμέστιχας

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. ίκτυα Υπολογιστών Ι. To Μοντέλο OSI. Αναπλ. Καθηγ. Π. εμέστιχας Πανεπιστήμιο Πειραιά To Μοντέλο OSI pdemest@unipi.gr ιάρθρωση Το μοντέλο αναφοράς OSI Επίπεδα Πρωτόκολλα, κατανομή πρωτοκόλλων σε στοιχεία δικτύου Αντιστοιχία τστοχα μοντέλων OSI και Internet Ανάλυση Επιπέδων

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Η/Υ

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 4 «Αρχιτεκτονικές ΛΣ» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 1. Μονολιθικά συστήματα Αρχιτεκτονικές ΛΣ 2. Στρωματοποιημένη αρχιτεκτονική 3. Αρχιτεκτονική

Διαβάστε περισσότερα

Πρωτόκολλο ARP. Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901

Πρωτόκολλο ARP. Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901 Πρωτόκολλο ARP Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901 Ποιο είναι το έργο του Πρωτοκόλλου Μετατροπής Διεύθυνσης (Address Resolution Protocol ARP) Κάνει δυναμική μετατροπή των IP διευθύνσεων σε φυσικές

Διαβάστε περισσότερα

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

Διαβάστε περισσότερα

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που 7.7 Πρωτόκολλο ARP 1 ύο είδη διευθύνσεων: MAC - IP Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που µπορεί

Διαβάστε περισσότερα

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων

Τ.Ε.Ι. Μεσολογγίου, Τµήµα τηλεπικοινωνιακών Συστημάτων & Δικτύων Εργαστήριο Java Αντικείμενο: Αρχεία Πακέτο java.io Πακέτο java.io.zip Στην Java δεν υπάρχει η έννοια των εγγραφών μέσα σε ένα αρχείο. Ο προγραμματιστής πρέπει να κατασκευάσει το αρχείο κατάλληλα έτσι ώστε

Διαβάστε περισσότερα

Ταχύτητα, Απλότητα & Αξιοπιστία

Ταχύτητα, Απλότητα & Αξιοπιστία Ταχύτητα, Απλότητα & Αξιοπιστία Αρχιτεκτονική Μηχανισμοί Αυτοελέγχου Συνδεσιμότητα Περιβάλλον Εργασίας Πληροφορίες Σχήματος Report Builder Import Manager Αρχιτεκτονική Real Time Multithreading Σταθερότητα

Διαβάστε περισσότερα

Προγραμματισμός με BSD Sockets σε περιβάλλον Linux

Προγραμματισμός με BSD Sockets σε περιβάλλον Linux Προγραμματισμός με BSD Sockets σε περιβάλλον Linux Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Απρίλιος 2016 Περίγραμμα παρουσίασης 1 Εισαγωγή 2 Δικτυακά

Διαβάστε περισσότερα

Αποµακρυσµένη κλήση διαδικασιών

Αποµακρυσµένη κλήση διαδικασιών Αποµακρυσµένηκλήση διαδικασιών Τοπική κλήση διαδικασιών Αποµακρυσµένη κλήση διαδικασιών Μεταβίβαση παραµέτρων Πρωτόκολλα επικοινωνίας Αντιγραφή µηνυµάτων Προδιαγραφές διαδικασιών RPC στο σύστηµα DCE Κατανεµηµένα

Διαβάστε περισσότερα

Wrapper Classes, Abstract Classes and Interfaces

Wrapper Classes, Abstract Classes and Interfaces Wrapper Classes, Abstract Classes and Interfaces Εβδοµάδα 3: Κλάσεις συσκευαστές, αφηρηµένες κλάσεις και διαπροσωπείες Αντικείµενα και µη-αντικείµενα Η Java παρέχει τύπους αντικειµένων και απλούς τύπους

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ Java 2

Προγραµµατισµός ΙΙ Java 2 Προγραµµατισµός ΙΙ Java 2 ιαχείριση Αρχείων Αρχεία Γιατί χρειαζόµαστε να γνωρίζουµε πως διαχειριζόµαστε αρχεία? Για να αποθηκεύουµε και να διαβάζουµε δεδοµένα από το δίσκο (τους λογικούς δίσκους πιο σωστά)

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Είσοδος Χρησιμοποιούμε την κλάση Scanner της Java import java.util.scanner; Αρχικοποιείται με το ρεύμα εισόδου: Scanner in = new Scanner(System.in);

Διαβάστε περισσότερα

Προγραµµατισµός ΙΙ Java 2

Προγραµµατισµός ΙΙ Java 2 Προγραµµατισµός ΙΙ Java 2 Προχωρηµένα Θέµατα Πακέτα Τις κλάσεις που κατασκευάζουµε µπορούµε να τις οργανώνουµε σε πακέτα εν «κουβαλάµε» µια-µια τις κλάσεις που επιθυµούµε αλλά ένα συµπαγές αρχείο, το πακέτο

Διαβάστε περισσότερα

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο TCP/IP. Ενότητα E. Πόσοι εµπλέκονται σε ένα Σύστηµα Επικοινωνίας

Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο TCP/IP. Ενότητα E. Πόσοι εµπλέκονται σε ένα Σύστηµα Επικοινωνίας Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής ίκτυα Η/Υ Συστήµατα Επικοινωνίας (Ε) (PC) (N) Επικοινωνίες: Εφαρµογές Υπολογιστές ίκτυα Μοντέλο TCP/IP πολλές πολλοί N A N B Ενότητα E PC A PC B PC D PC E E A E B

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται πάνω σε μία ευθεία πάντα

Διαβάστε περισσότερα

Αντικείμενα στη Java. Παύλος Εφραιμίδης. Java Αντικείμενα στη Java 1

Αντικείμενα στη Java. Παύλος Εφραιμίδης. Java Αντικείμενα στη Java 1 Αντικείμενα στη Java Παύλος Εφραιμίδης Java Αντικείμενα στη Java 1 Αντικείμενα (Objects) στην Java Ένα πρόγραμμα Java κατά την εκτέλεσή του δημιουργεί αντικείμενα τα αντικείμενα αλληλεπιδρούν, στέλνοντας

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

Διαβάστε περισσότερα

Τεχνολογία TCP/IP ΙΑ ΙΚΤΥΩΣΗ- INTERNET. Τεχνολογίες Τηλεκπαίδευσης & Εφαρµογές - Ιούλιος 09 1 http://creativecommons.org/licenses/by-nc-nd/3.

Τεχνολογία TCP/IP ΙΑ ΙΚΤΥΩΣΗ- INTERNET. Τεχνολογίες Τηλεκπαίδευσης & Εφαρµογές - Ιούλιος 09 1 http://creativecommons.org/licenses/by-nc-nd/3. Τεχνολογία TCP/IP ΙΑ ΙΚΤΥΩΣΗ- INTERNET Εφαρµογές - Ιούλιος 09 1 Εισαγωγή στην τεχνολογία TCP/IP Τεχνολογία TCP/IP TCP/IP Πρωτόκολλα TCP/IP ή τεχνολογία TCP/IP ή τεχνολογία ιαδικτύου (Internet)( ιαδίκτυο

Διαβάστε περισσότερα

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP) Γιάννης Σαμωνάκης 1 Περιεχόμενα Τι είναι η PHP Που μπορεί να χρησιμοποιηθεί

Διαβάστε περισσότερα

Εργαστήριο Δικτύων Υπολογιστών

Εργαστήριο Δικτύων Υπολογιστών Εργαστήριο Δικτύων Υπολογιστών 2 η Διάλεξη: TCP/UDP Δικτυακά πρωτόκολλα / εφαρμογές Ports Unix δικτυακές εντολές Transmission Control Protocol - TCP Πρωτόκολλο Mεταφοράς RFC 793 [Postel 1981] Xρησιμοποιεί

Διαβάστε περισσότερα